80

ホーム画面のアイコンの下にあるアプリケーション名が「MyAwesomeApp」の場合、実行時にアプリケーション内でその文字列を取得するにはどうすればよいですか。

4

10 に答える 10

139

やってみます

[[NSBundle mainBundle] objectForInfoDictionaryKey:@"CFBundleDisplayName"];

おそらくあなたは自分のアプリの名前を知っていて、それを使用することができますが…</ p>

于 2011-11-30T03:54:11.967 に答える
30

スウィフト3&4

Bundle.main.object(forInfoDictionaryKey: "CFBundleName") as? String ?? ""
Bundle.main.object(forInfoDictionaryKey: "CFBundleDisplayName") as? String ?? ""


スウィフト2.2

NSBundle.mainBundle().objectForInfoDictionaryKey("CFBundleName")
NSBundle.mainBundle().objectForInfoDictionaryKey("CFBundleDisplayName")


「CFBundleName」と「CFBundleDisplayName」の詳細

以下は、CoreFoundationKeysに関するAppleのドキュメントからのものです。

CFBundleName、「バンドル名」、バンドルの短縮名。ユーザーに表示されることを意図したものではありません。詳細については、 CFBundleNameを参照してください。(推奨、ローカライズ可能)

CFBundleDisplayName、「バンドル表示名」、バンドルのユーザーに表示される名前。Siriによって使用され、iOSのホーム画面に表示されます。詳細については、 CFBundleDisplayNameを参照してください。(必須、ローカライズ可能)

于 2016-09-01T21:23:12.743 に答える
19
[[NSBundle mainBundle] objectForInfoDictionaryKey:@"CFBundleName"];
于 2014-12-23T14:40:43.570 に答える
14

配列アイテムを取得するXcode4.5の新しい方法が大好きだからです。:)

- (NSString*)project_getAppName {
    return NSBundle.mainBundle.infoDictionary[@"CFBundleDisplayName"];
}
于 2012-09-29T15:55:35.147 に答える
8

Xamarin.iOSの使用:

return ((NSString)NSBundle.MainBundle.InfoDictionary["CFBundleName"]).ToString();
于 2015-01-23T00:23:36.503 に答える
8
#include <stdlib.h>

// work for iOS and MacOSX and ~23 times faster than get name from bundle
NSString *app = [NSString stringWithUTF8String:getprogname()];
于 2016-02-10T17:34:22.610 に答える
6

スウィフト3、4、5

let appName = Bundle.main.infoDictionary?["CFBundleName"] as? String
于 2016-11-01T20:37:25.817 に答える
5

スウィフト3/4

let appName =  Bundle.main.object(forInfoDictionaryKey: kCFBundleNameKey as String) as? String
于 2017-07-07T08:51:05.773 に答える
3
NSString* applicationName = [entry objectForKey:(id)kCGWindowOwnerName];

これはあなたが探しているものの例を含む良い投稿です。OPは何も受け入れませんでした。これは残念なことですが、答えは役に立ちます。

于 2011-11-30T03:42:09.380 に答える
1

注意

アプリでを実行する場合localizationsは、ブローコードを使用して、真のローカライズされた表示名を取得する必要があります。

Bundle.main.object(forInfoDictionaryKey: "CFBundleName") as? String ?? ""
Bundle.main.object(forInfoDictionaryKey: "CFBundleDisplayName") as? String ?? ""

ではなく

Bundle.main.object(forInfoDictionaryKey: kCFBundleNameKey as String) as? String
于 2019-04-28T07:53:27.013 に答える