NSBundle pathForResource:ofType:偶尔为一个资源返回nil

时间:2012-10-28 21:02:59

标签: iphone ios

通常在尝试通过[[NSBundle mainBundle] pathForResource:@"iphone" ofType:@"splang"]在我的应用中加载特定资源时,它工作正常,但每次只返回nil。有问题的iphone.splang文件是一个~275 KB的文本文件,它与应用程序捆绑在一起(通常可以加载)。

我已经验证它是pathForResource:ofType:返回nil,而不是mainBundle方法。

1 个答案:

答案 0 :(得分:1)

这可能是国际化的问题。 根据{{​​3}},如果找不到文件,pathForResource只返回nil。但它也说:

  

该方法首先在指定包的非本地化资源目录中查找匹配的资源文件。 [...]如果找不到匹配的资源文件,则它会查找任何可用语言特定的“.lproj”目录的顶层。 (特定于语言的目录的搜索顺序对应于用户的首选项。)它不会通过任何这些位置的其他子目录进行递归。

也许您正在使用不同语言或模拟器的不同机器上尝试使用代码。

此外,[NSBundle mainbundle]可以返回nil,因此执行任何调用也会返回nil。

  

[...]请务必检查返回值,以确保您拥有有效的捆绑包。