NSBundle mainBundle返回零

时间:2018-05-18 20:51:19

标签: ios objective-c xcode nsbundle

我试图根据我们iOS应用的Xcode中的构建配置更改服务器设置。我使用this guide作为基础。我在Info.plist中设置了配置属性,但是当我尝试在代码中获取它时,它会返回nil

info.plist entry

在搜索解决方案和测试时,我发现我从nil处获得了mainBundle所有内容。这是我到目前为止在测试中声明的内容。我错过了什么/做错了什么?

NSBundle *bundle = [NSBundle mainBundle];
NSString *configuration = [[NSBundle mainBundle] objectForInfoDictionaryKey:@"Configuration"];
NSString *bundleName = [[NSBundle mainBundle] bundleIdentifier];
NSString *otherName = [[[NSBundle mainBundle] infoDictionary] objectForKey:(NSString *)kCFBundleNameKey];

我正在使用Xcode 9.3。

2 个答案:

答案 0 :(得分:0)

在某些情况下,例如,当您的代码直接在Interface Builder中执行时,mainBundle不会返回对象。因此,根据您的上下文,您可能希望使用bundleForClass:。指定一个位于所需包中的类。

NSBundle *bundle = [NSBundle bundleForClass:[YourClass class]];

答案 1 :(得分:0)

原来我从发布配置中复制了我的调试配置。我注意到一些调试属性不一样。所以我删除并重新创建了新配置。这解决了这个问题。如果有人对发布版本中未找到捆绑信息的原因有任何具体说明,请发表评论。