以编程方式获取Bundle标识符
我怎样才能从我的应用程序内获得编程的string的Bundle标识符?
Objective-C的
NSString *bundleIdentifier = [[NSBundle mainBundle] bundleIdentifier];
Swift 1.2
let bundleIdentifier = NSBundle.mainBundle().bundleIdentifier
Swift 3.0
let bundleIdentifier = Bundle.main.bundleIdentifier
[[NSBundle mainBundle] bundleIdentifier];
( 文件 )
您可能需要使用Core Foundation方法来获取价值。 ARC示例如下:
NSString *value = (__bridge_transfer NSString *)CFDictionaryGetValue(CFBundleGetInfoDictionary(CFBundleGetMainBundle()), (const void *)(@"CFBundleIdentifier"));
如果您正在尝试以编程方式获取,则可以使用以下代码行:
Objective-C的:
NSString *bundleIdentifier = [[NSBundle mainBundle] bundleIdentifier];
Swift 3.0:
让bundleIdentifier = Bundle.main.bundleIdentifier
更新为最新的迅速它将适用于iOS和Mac应用程序。
我使用这些macros来缩短它:
#define BUNDLEID [NSString stringWithString:[[NSBundle mainBundle] bundleIdentifier]] #define BUNDLEIDEQUALS(bundleIdString) [BUNDLEID isEqualToString:bundleIdString]
所以我可以像这样比较:
if (BUNDLEIDEQUALS(@"com.mycompany.myapp") { //do this }
要在Swift 3.0中以编程方式获取包标识符:
Swift 3.0
let bundle = Bundle.main.bundleIdentifier