我如何在应用程序内以编程方式获取Bundle标识符的字符串?
Objective-C
NSString *bundleIdentifier = [[NSBundle mainBundle] bundleIdentifier];
Swift 1.2
let bundleIdentifier = NSBundle.mainBundle().bundleIdentifier
Swift 3.0
let bundleIdentifier = Bundle.main.bundleIdentifier
Xamarin.iOS
var bundleIdentifier = NSBundle.MainBundle.BundleIdentifier
[[NSBundle mainBundle] bundleIdentifier];
(文档)
let bundleIdentifier = NSBundle.mainBundle().bundleIdentifier
。 - Tim Arnoldlet bundle = Bundle.main.bundleIdentifier
您可能需要使用Core Foundation方法来获取值。以下是ARC示例:
NSString *value = (__bridge_transfer NSString *)CFDictionaryGetValue(CFBundleGetInfoDictionary(CFBundleGetMainBundle()),
(const void *)(@"CFBundleIdentifier"));
NSString *bundleIdentifier = [[NSBundle mainBundle] bundleIdentifier];
Swift 3.0 :
let bundleIdentifier = Bundle.main.bundleIdentifier
更新为最新的Swift,适用于iOS和Mac应用程序。
我使用这些宏来使代码更短:
#define BUNDLEID [NSString stringWithString:[[NSBundle mainBundle] bundleIdentifier]]
#define BUNDLEIDEQUALS(bundleIdString) [BUNDLEID isEqualToString:bundleIdString]
所以我可以这样比较:
if (BUNDLEIDEQUALS(@"com.mycompany.myapp") {
//do this
}
let bundleIdentifier = NSBundle.mainBundle().bundleIdentifier
来获取应用程序的包标识符。 - Tim ArnoldBundle.main.bundleIdentifier!
- Sebastian Roth