我怎样才能从我的应用程序内以编程的方式获得捆绑标识符的字符串?
当前回答
我使用这些宏来使它更短:
#define BUNDLEID [NSString stringWithString:[[NSBundle mainBundle] bundleIdentifier]]
#define BUNDLEIDEQUALS(bundleIdString) [BUNDLEID isEqualToString:bundleIdString]
所以我可以这样比较:
if (BUNDLEIDEQUALS(@"com.mycompany.myapp") {
//do this
}
其他回答
您可能需要使用Core Foundation方法来获取值。ARC示例如下:
NSString *value = (__bridge_transfer NSString *)CFDictionaryGetValue(CFBundleGetInfoDictionary(CFBundleGetMainBundle()),
(const void *)(@"CFBundleIdentifier"));
objective - c
NSString *bundleIdentifier = [[NSBundle mainBundle] bundleIdentifier];
斯威夫特1.2
let bundleIdentifier = NSBundle.mainBundle().bundleIdentifier
斯威夫特3.0
let bundleIdentifier = Bundle.main.bundleIdentifier
Xamarin.iOS
var bundleIdentifier = NSBundle.MainBundle.BundleIdentifier
在Swift 3.0中以编程方式获取bundle标识符:
斯威夫特3.0
let bundle = Bundle.main.bundleIdentifier
我使用这些宏来使它更短:
#define BUNDLEID [NSString stringWithString:[[NSBundle mainBundle] bundleIdentifier]]
#define BUNDLEIDEQUALS(bundleIdString) [BUNDLEID isEqualToString:bundleIdString]
所以我可以这样比较:
if (BUNDLEIDEQUALS(@"com.mycompany.myapp") {
//do this
}
如果你试图通过编程方式获取它,你可以使用下面的代码行:
objective - c:
NSString *bundleIdentifier = [[NSBundle mainBundle] bundleIdentifier];
Swift 3.0:
let bundleIdentifier = Bundle.main.bundleIdentifier
它将工作在iOS和Mac应用程序。
推荐文章
- 我如何获得iOS 7默认的蓝色编程?
- UITapGestureRecognizer破坏UITableView didSelectRowAtIndexPath
- 在Objective-C中@property保留,赋值,复制,非原子
- 6.5英寸屏幕的App store截图大小是多少?
- 我如何在NSAttributedString中创建一个可点击的链接?
- iOS测试/规格TDD/BDD以及集成和验收测试
- 停止UIWebView垂直“弹跳”?
- 启动屏幕故事板不显示图像
- 是否可以为iPhone应用程序(如YouTube和地图)注册一个基于http+域的URL方案?
- 模拟器错误fbssystemservicdomain代码4
- 改变UISegmentedControl的字体大小
- 我可以强制UITableView隐藏分隔符之间的空单元格吗?
- 获取用户当前位置/坐标
- 获得推送通知,而应用程序在前台iOS
- 如何取消选定的UITableView单元格?