我正在使用xcode和objc创建一个简单的应用程序,我需要从文件中加载NSDictionary,但我无法使用NSBundle获取文件的路径:

NSString *l = [[NSBundle mainBundle] pathForResource:@"LoginStatuses" ofType:@"plist"];
NSLog(@"%@", l);

当我运行这段代码时,我得到:

2010-10-16 10:42:42.42样本[5226:a0f](空)

我不知道为什么.

我创建了一个名为Resources的组,并在其中添加了登录状态.普利斯特:

推荐答案

因此,在我得到来源后,以下是这个问题的解决方案:

我没有真正注意到发布的截图,但目标是类型"Command-line Tool"...由于这些没有Bundle [NSBundle mainBundle],当然返回零.Xcode并没有抱怨它不能执行"Copy Bundle Resources"步,只是默默地跳过了它,这是非常误导人的.

解决方案只是添加一个类型为"Application"的新目标,从而生成一个基于Bundle 包的应用程序.然后选中Target Membership个复选框,查看这个新目标的所有源和资源.然后正确解析plist路径.

Objective-c相关问答推荐

iOS9 - 这个应用程序正在从后台线程修改自动布局引擎 - 在哪里?

UITabBar 中的自定义 colored颜色

检测时间格式是 12 小时还是 24 小时格式

ios 使用 AVFramework 捕获图像

iOS 心率检测算法

为什么我的 UIButton 的内部修饰事件没有被调用?

来自 NSString 的 NSJSONSerialization

如何获得本地化的 Cancel、Done 等?

从 UIPageViewController 中移除视图控制器

无法在 Interface Builder (Xcode 5) 中创建与子视图的出口连接

如何确定 UICollectionView flowLayout 中单元格之间的间距

UIViewController 的 prefersStatusBarHidden 不起作用

将 NSData 字节转换为 NSString?

alloc 和 allocWithZone: 有什么区别?

Objective C - 如何连接整个字符串数组?

UILabel 根据要显示的文本自动调整大小

在 UICollectionView 上重置滚动

如何将 printf 与 NSString 一起使用

@synthesized 保留属性的释放是如何处理的?

iOS中的活动生命周期相当于什么?