web-dev-qa-db-fra.com

Comment se localiser CFBundleDisplayName

[[[NSBundle mainBundle] infoDictionary] objectForKey:@"CFBundleDisplayName"]

cette API renvoie le nom d'affichage du paquet dans la pliste.

Cependant, mon application est localisée et a un nom d'affichage différent.

je dois donc obtenir un nom d'affichage localisé dans InfoPlist.strings qui devrait varier en fonction du réglage de la langue de l'appareil.

30
Umgre

Avez-vous essayé -[NSBundle localizedInfoDictionary]?

[[[NSBundle mainBundle] localizedInfoDictionary]
       objectForKey:@"CFBundleDisplayName"]
60
justin

Je suggère d'utiliser kCFBundleNameKey :

[[NSBundle mainBundle] objectForInfoDictionaryKey:(NSString*)kCFBundleNameKey]
3
Igor

Essayez ceci pour Swift:

// Localized
if let displayName = Bundle.main.localizedInfoDictionary?["CFBundleDisplayName"] as? String {
    print("App Display Name - \(displayName)")
}

// Non-Localized
if let displayName = Bundle.main.infoDictionary?["CFBundleDisplayName"] as? String {
    print("App Display Name - \(displayName)")
}

Essayez aussi ceci si vous n'avez pas encore défini Nom d'affichage.

// Localized
if let appName = Bundle.main. localizedInfoDictionary?["CFBundleName"] as? String {
    print("App Name - \(appName)")
}

// Non-Localized
if let appName = Bundle.main.infoDictionary?["CFBundleName"] as? String {
    print("App Name - \(appName)")
}

Truc utile:

// Print bundle info dictionary to get complete details about app
print("Bundle.main.infoDictionary - \(Bundle.main.infoDictionary)")
print("Bundle.main.localizedInfoDictionary - \(Bundle.main.localizedInfoDictionary)")
2
Krunal

Swift 3.0

class Utils {
    static var localizedAppName: String? {
        return Bundle.main.localizedInfoDictionary?["CFBundleDisplayName"] as! String?
    }
}
0
Dmitry Isaev
Bundle.main.object(forInfoDictionaryKey: "CFBundleName") as? String ?? ""

L'utilisation de cette méthode est préférable aux autres méthodes d'accès car elle renvoie la valeur localisée d'une clé lorsqu'elle est disponible.

0
Diven Lee