Si le nom de l'application sous l'icône sur l'écran d'accueil est "My Awesome App", comment obtenez-vous cette chaîne dans l'application au moment de l'exécution?
J'essaierais
[[NSBundle mainBundle] objectForInfoDictionaryKey:@"CFBundleDisplayName"];
bien que vous connaissiez probablement le nom de votre propre application et que vous puissiez simplement l'utiliser ...
Bundle.main.object(forInfoDictionaryKey: "CFBundleName") as? String ?? ""
Bundle.main.object(forInfoDictionaryKey: "CFBundleDisplayName") as? String ?? ""
NSBundle.mainBundle().objectForInfoDictionaryKey("CFBundleName")
NSBundle.mainBundle().objectForInfoDictionaryKey("CFBundleDisplayName")
Ce qui suit est de la documentation d'Apple sur les clés de base de base
CFBundleName , "Bundle name", Le nom court du bundle; pas destiné à être vu par l'utilisateur. Voir CFBundleName pour plus de détails. (Recommandé, localisable)
CFBundleDisplayName , "Bundle display name", Le nom visible par l'utilisateur du bundle; utilisé par Siri et visible sur l'écran d'accueil dans iOS. Voir CFBundleDisplayName pour plus de détails. (Obligatoire, localisable)
[[NSBundle mainBundle] objectForInfoDictionaryKey:@"CFBundleName"];
Tout simplement parce que j'aime la nouvelle façon Xcode 4.5 d'obtenir un élément de tableau. :)
- (NSString*)project_getAppName {
return NSBundle.mainBundle.infoDictionary[@"CFBundleDisplayName"];
}
Pour l'utilisation de Xamarin.iOS:
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()];
Swift 3/4
let appName = Bundle.main.object(forInfoDictionaryKey: kCFBundleNameKey as String) as? String
NSString* applicationName = [entry objectForKey:(id)kCGWindowOwnerName];
Voici un bon article avec des exemples de ce que vous recherchez. Le PO n'a rien accepté, ce qui est regrettable, mais les réponses sont utiles.
let appName = Bundle.main.infoDictionary?["CFBundleName"] as? String
Attention:
Si vous localisez le nom de votre application dans une langue différente, vous devez utiliser le code de coup pour obtenir le vrai nom d'affichage localisé:
Bundle.main.object(forInfoDictionaryKey: "CFBundleName") as? String ?? ""
Bundle.main.object(forInfoDictionaryKey: "CFBundleDisplayName") as? String ?? ""
plus éloigné que le coup:
Bundle.main.object(forInfoDictionaryKey: kCFBundleNameKey as String) as? String