如何在iOS中获取正在运行的应用程序的名称

时间:2011-11-30 03:39:59

标签: ios xcode uiapplication

如果主屏幕上图标下的应用程序名称是“My Awesome App”,那么如何在运行时在应用程序中获取该字符串?

10 个答案:

答案 0 :(得分:128)

我试试

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

虽然大概你知道自己应用的名字,但可以使用它......

答案 1 :(得分:21)

Swift 3& 4

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


Swift 2.2

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


更多关于' CFBundleName'和' CFBundleDisplayName'

以下内容来自Apple's documentation on Core Foundation Keys

CFBundleName ,“捆绑名称”,捆绑包的简称;不打算被用户看到。有关详细信息,请参阅CFBundleName。 (推荐,可本地化)

CFBundleDisplayName ,“捆绑显示名称”,捆绑包的用户可见名称;由Siri使用,在iOS的主屏幕上可见。有关详细信息,请参阅CFBundleDisplayName。 (必需,可本地化)

答案 2 :(得分:19)

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

答案 3 :(得分:14)

仅仅因为我喜欢Xcode 4.5获取数组项目的新方法。 :)

- (NSString*)project_getAppName {
    return NSBundle.mainBundle.infoDictionary[@"CFBundleDisplayName"];
}

答案 4 :(得分:7)

对于Xamarin.iOS使用:

return ((NSString)NSBundle.MainBundle.InfoDictionary["CFBundleName"]).ToString();

答案 5 :(得分:5)

#include <stdlib.h>

// work for iOS and MacOSX and ~23 times faster than get name from bundle
NSString *app = [NSString stringWithUTF8String:getprogname()];

答案 6 :(得分:5)

Swift 3/4

let appName =  Bundle.main.object(forInfoDictionaryKey: kCFBundleNameKey as String) as? String

答案 7 :(得分:3)

NSString* applicationName = [entry objectForKey:(id)kCGWindowOwnerName];

Here is a good post以及您正在寻找的示例。 OP不接受任何事情,这是不幸的,但答案很有用。

答案 8 :(得分:3)

Swift 3

let appName = Bundle.main.infoDictionary?["CFBundleName"] as? String

答案 9 :(得分:0)

注意

如果您使用其他语言本地化您的应用名称,则应使用打击代码来获取真实的本地化显示名称:

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

胜过

Bundle.main.object(forInfoDictionaryKey: kCFBundleNameKey as String) as? String