ホーム画面のアイコンの下にあるアプリケーション名が「My Awesome App」である場合、実行時にアプリケーション内でその文字列を取得するにはどうすればよいですか?
やってみたい
[[NSBundle mainBundle] objectForInfoDictionaryKey:@"CFBundleDisplayName"];
おそらくあなたはあなた自身のアプリの名前を知っていて、それを使うことができるでしょう...
Bundle.main.object(forInfoDictionaryKey: "CFBundleName") as? String ?? ""
Bundle.main.object(forInfoDictionaryKey: "CFBundleDisplayName") as? String ?? ""
NSBundle.mainBundle().objectForInfoDictionaryKey("CFBundleName")
NSBundle.mainBundle().objectForInfoDictionaryKey("CFBundleDisplayName")
以下は Core Foundation Keysに関するAppleのドキュメント
CFBundleName、「バンドル名」、バンドルの短縮名。ユーザーに表示されることを意図していません。詳細については、 CFBundleName を参照してください。 (推奨、ローカライズ可能)
CFBundleDisplayName、「Bundle display name」、バンドルのユーザーに表示される名前。 Siri=によって使用され、iOSのホーム画面に表示されます。詳細は CFBundleDisplayName を参照してください。(必須、ローカライズ可能)
[[NSBundle mainBundle] objectForInfoDictionaryKey:@"CFBundleName"];
配列項目を取得するXcode 4.5の新しい方法が大好きだからです。 :)
- (NSString*)project_getAppName {
return NSBundle.mainBundle.infoDictionary[@"CFBundleDisplayName"];
}
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()];
スイフト3/4
let appName = Bundle.main.object(forInfoDictionaryKey: kCFBundleNameKey as String) as? String
NSString* applicationName = [entry objectForKey:(id)kCGWindowOwnerName];
これは良い投稿です 探しているものの例。 OPは何も受け入れませんでした。これは残念ですが、答えは役に立ちます。
let appName = Bundle.main.infoDictionary?["CFBundleName"] as? String
注意:
アプリ名を別の言語でローカライズする場合は、ブローコードを使用して、真のローカライズされた表示名を取得する必要があります。
Bundle.main.object(forInfoDictionaryKey: "CFBundleName") as? String ?? ""
Bundle.main.object(forInfoDictionaryKey: "CFBundleDisplayName") as? String ?? ""
以上打撃:
Bundle.main.object(forInfoDictionaryKey: kCFBundleNameKey as String) as? String