在我的代码中,我想打开一个html文件,所以添加了以下代码行:
NSString* path = [NSBundle mainBundle资源路径:@“奶酪”类型:@“html”];
但它失败了,因为在执行后路径为空。文件cheese.html存在,并已添加到项目的资源中。
我不能,并且仍然不明白为什么它不能工作。我还有其他几个项目可以打开和读取文件,因此作为实验,我将失败的代码行复制到其他项目中,并将cheese.html文件从不起作用的项目中拖放到另一个项目中(从xcode的层次结构项目文件视图中拖放),然后答对了-该行执行,路径在另一个项目中不为空。
所以我完全迷惑了,为什么它在一个项目中有效,而在另一个项目中不起作用?
这两行代码完全相同,当文件被拖放到同一个文件中时,而文件是从xcode本身中拖出的,这证明该文件已添加到项目资源中。那么为什么它仍然会失败呢?
发布于 2011-11-22 13:21:01
请检查以下内容:
在左侧的管理器中,选择您的项目。然后在下一个导航器中选择您的目标名称。然后选择构建阶段‘标签’。您将看到一个“复制捆绑资源”部分。确保您要查找的资源已在此处列出。如果不是,则添加它。
发布于 2012-11-06 22:47:38
对于任何遇到这个问题的人来说,另一个可能的解决方案是:有时一个文件可能属于一个不是mainBundle
的包-在这种情况下,最简单的解决方案是使用[NSBundle bundleForClass:[self class]]
,使用当前类正在使用的包。
https://stackoverflow.com/questions/8221398
复制相似问题