Wenn der Anwendungsname unter dem Symbol auf dem Startbildschirm "My Awesome App" lautet, wie erhalten Sie diese Zeichenfolge zur Laufzeit in der Anwendung?
Antworten:
Ich würde es versuchen
[[NSBundle mainBundle] objectForInfoDictionaryKey:@"CFBundleDisplayName"];
obwohl Sie vermutlich den Namen Ihrer eigenen App kennen und ihn einfach verwenden können ...
Bundle display name
Eigenschaft in meine Info.plist
Datei aufgenommen hatte.
Bundle.main.object(forInfoDictionaryKey: "CFBundleName") as? String ?? ""
Bundle.main.object(forInfoDictionaryKey: "CFBundleDisplayName") as? String ?? ""
NSBundle.mainBundle().objectForInfoDictionaryKey("CFBundleName")
NSBundle.mainBundle().objectForInfoDictionaryKey("CFBundleDisplayName")
Das Folgende stammt aus der Apple-Dokumentation zu Core Foundation Keys
CFBundleName , "Bundle-Name", Der Kurzname des Bundles; nicht dazu gedacht, vom Benutzer gesehen zu werden. Weitere Informationen finden Sie unter CFBundleName . (Empfohlen, lokalisierbar)
CFBundleDisplayName , "Bundle-Anzeigename", Der vom Benutzer sichtbare Name des Bundles; Wird von Siri verwendet und ist auf dem Startbildschirm in iOS sichtbar. Weitere Informationen finden Sie unter CFBundleDisplayName . (Erforderlich, lokalisierbar)
[[NSBundle mainBundle] objectForInfoDictionaryKey:@"CFBundleName"];
Nur weil ich den neuen Xcode 4.5-Weg liebe, um ein Array-Element zu erhalten. :) :)
- (NSString*)project_getAppName {
return NSBundle.mainBundle.infoDictionary[@"CFBundleDisplayName"];
}
Für Xamarin.iOS verwenden Sie:
return ((NSString)NSBundle.MainBundle.InfoDictionary["CFBundleName"]).ToString();
#include <stdlib.h>
// work for iOS and MacOSX and ~23 times faster than get name from bundle
NSString *app = [NSString stringWithUTF8String:getprogname()];
NSString* applicationName = [entry objectForKey:(id)kCGWindowOwnerName];
Hier ist ein guter Beitrag mit Beispielen dafür, wonach Sie suchen. Das OP hat nichts akzeptiert, was bedauerlich ist, aber die Antworten sind nützlich.
Achtung :
Wenn Sie eine localizations
in Ihrer App ausführen, sollten Sie den geblasenen Code verwenden, um den tatsächlichen lokalisierten Anzeigenamen zu erhalten:
Bundle.main.object(forInfoDictionaryKey: "CFBundleName") as? String ?? ""
Bundle.main.object(forInfoDictionaryKey: "CFBundleDisplayName") as? String ?? ""
eher als :
Bundle.main.object(forInfoDictionaryKey: kCFBundleNameKey as String) as? String