我正在使用 xcode 和 objc 创建一个简单的应用程序,我需要从文件加载 NSDictionary,但我无法使用 NSBundle 获取文件的路径:
NSString *l = [[NSBundle mainBundle] pathForResource:@"LoginStatuses" ofType:@"plist"];
NSLog(@"%@", l);
当我运行此代码时,我得到:
2010-10-16 10:42:42.42 示例[5226:a0f](空)
我也不知道为什么。
我创建了一个名为 Resources 的组,并在其中添加了 LogingStatuses.plist:
最佳答案
所以这是我得到源码后解决这个问题的方法:
我并没有真正注意发布的屏幕截图,但目标是“命令行工具”类型...并且因为它们没有 bundle [ NSBundle mainBundle]
当然返回 nil。 Xcode 并没有提示它无法执行“复制捆绑资源”步骤,而是默默地跳过它,这是相当具有误导性的。
解决方案只是添加一个类型为“Application”的新目标,以便生成基于 bundle 的应用程序。然后选中此新目标的所有来源和资源的目标成员资格复选框。然后 plist 路径就被正确解析了。
关于objective-c - NSBundle pathForResource 为 NULL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55998543/