[[[NSBundle mainBundle] infoDictionary] objectForKey:@"CFBundleDisplayName"]
이 API는 plist에 번들 표시 이름을 반환합니다.현지화 된 CFBundleDisplayName을 얻는 방법
그러나 내 앱이 현지화되어 있으며 다른 표시 이름이 있습니다.
그래서 장치 언어 설정에 따라 달라지는 InfoPlist.strings
에 현지화 된 표시 이름을 가져와야합니다.
[[[NSBundle mainBundle] infoDictionary] objectForKey:@"CFBundleDisplayName"]
이 API는 plist에 번들 표시 이름을 반환합니다.현지화 된 CFBundleDisplayName을 얻는 방법
그러나 내 앱이 현지화되어 있으며 다른 표시 이름이 있습니다.
그래서 장치 언어 설정에 따라 달라지는 InfoPlist.strings
에 현지화 된 표시 이름을 가져와야합니다.
-[NSBundle localizedInfoDictionary]
을 사용해 보셨습니까?
[[[NSBundle mainBundle] localizedInfoDictionary]
objectForKey:@"CFBundleDisplayName"]
나는 kCFBundleNameKey
를 사용하는 것이 좋습니다 :
[[NSBundle mainBundle] objectForInfoDictionaryKey:(NSString*)kCFBundleNameKey]
스위프트 3.0
class Utils {
static var localizedAppName: String? {
return Bundle.main.localizedInfoDictionary?["CFBundleDisplayName"] as! String?
}
}
스위프트이 시도 : 경우
또한// 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)")
}
는,이 시도 Y ou've 노트 설정 표시 이름
// 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)")
}
유용한 트릭 :
// Print bundle info dictionary to get complete details about app
print("Bundle.main.infoDictionary - \(Bundle.main.infoDictionary)")
print("Bundle.main.localizedInfoDictionary - \(Bundle.main.localizedInfoDictionary)")
하나를 사용할 때이 키의 지역화 된 값을 반환하기 때문에이 방법의 사용은 다른 접근 방법을 선호한다
Bundle.main.object(forInfoDictionaryKey: "CFBundleName") as? String ?? ""
. . 당신은 환영합니다 @Umgre
간단한 해결책 :(감사 – Umgre
이 API를의 톤이있다 - =)를 기억하는 많은 – justin
이 방법은 더 직접적으로 너무 지역화 된 문자열을 반환합니다 : 를'[[NSBundle mainBundle] objectForInfoDictionaryKey : @ "CFBundleDisplayName"]' – artur