2011-11-22 32 views
0

在我的代码工作我想开一个HTML文件,所以添加以下代码行:的使用代码相同的行[mainBundle pathForResource]失败的一个项目,但在另一个

的NSString *路径= [[一个NSBundle mainBundle] pathForResource:@“cheese”ofType:@“html”];

但是由于执行后路径为零,所以失败。文件cheese.html存在并已添加到项目的资源中。

我不能,但仍然不知道为什么它不工作。我有一些其他项目打开并阅读文件,因此作为一个实验,我复制了这些失败的代码行到这些其他项目之一,并与它一起拖放了cheese.html文件。没有工作到这个其他项目(从xcode的hieararchical项目文件视图中拖放),宾果 - 该行执行并且该路径在其他项目中不是零。

所以我完全迷惑,为什么它在一个项目中工作而不是另一个?

它与两者中完全相同的代码行以及文件被拖放到同一文件时,并且当文件从xcode本身拖出时,它证明文件已被添加到项目资源中。那为什么它仍然会失败?

+0

几小时后,我放弃了,放弃了这个项目,并把那个工作并删除了所有不相关的部分。 不知道为什么它从来没有工作。 – Gruntcakes

+0

你有没有检查过该文件是否在正确的位置,包括而不是位于另一个子文件夹等中。 – user523234

回答

2

检查:

在左边的组织者选择您的项目。然后在下一个导航器中选择您的目标名称。然后选择构建阶段的“选项卡”。您将看到一个“复制捆绑资源”部分。确保你正在寻找的资源在那里列出。如果没有添加它。

2

另一种可能的解决这个问题的人谁正在经历它:有时候,一个文件可以属于一个包是mainBundle - 在这种情况下,最简单的解决方案是使用[NSBundle bundleForClass:[self class]]相反,使用捆绑当前班正在使用。

相关问题