首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >NSBundle pathForResource为空

NSBundle pathForResource为空
EN

Stack Overflow用户
提问于 2010-10-16 22:52:20
回答 9查看 44.2K关注 0票数 39

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

代码语言:javascript
复制
NSString *l = [[NSBundle mainBundle] pathForResource:@"LoginStatuses" ofType:@"plist"];
NSLog(@"%@", l);

当我运行这段代码时,我得到了这样的结果:

2010-10-16 10:42:42.42示例5226:a0f

我也不知道为什么。

我创建了一个名为Resources的组,并在其中添加了LogingStatuses.plist:

EN

回答 9

Stack Overflow用户

回答已采纳

发布于 2010-10-17 02:31:56

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

我并没有真正注意到张贴的屏幕截图,但目标是“命令行工具”类型……因为它们没有包,所以[NSBundle mainBundle]当然会返回nil。Xcode没有抱怨它不能执行"Copy Bundle Resources“步骤,它只是默默地跳过它,这是相当误导的。

解决方案是简单地添加一个" application“类型的新目标,这样就会生成一个基于捆绑包的应用程序。然后选中此新目标的所有源和资源的target Membership复选框。然后正确解析plist路径。

票数 64
EN

Stack Overflow用户

发布于 2012-09-04 10:43:08

我试图让我的iPhone应用程序使用默认的sqlite数据库,但darn应用程序找不到它。结果是我必须确保.sqlite文件在捆绑包资源中。

  1. 选择您的项目
  2. 选择目标
  3. 选择构建阶段选项卡
  4. 打开标签为"Copy
  5. Resources"
  6. Drag

drop your .sqlite file into本节“的部分。

现在,您的应用程序将找到这个默认的sqlite数据库。

票数 53
EN

Stack Overflow用户

发布于 2010-10-16 23:05:29

文件是否真的包含在目标中(因此是否会被复制到包中)?有两种方法可以找出/设置它:

第一种方法:在文件上单击鼠标右键(或按住Cmd键),选择“获取信息”。然后单击"Targets“选项卡,并确保检查文件中是否有所需的目标。

第二种方法:在项目浏览器中的文件浏览器头上单击鼠标右键(或Cmd-clock) (可能会显示"Groups & Files")。然后选择“目标成员资格”。现在,可以成为目标成员的每个文件(如.m文件或资源)旁边都有复选框。同样,请确保选中您的文件旁边的复选框。

票数 22
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3949368

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档