通常在尝试通过[[NSBundle mainBundle] pathForResource:@"iphone" ofType:@"splang"]
在我的应用中加载特定资源时,它工作正常,但每次只返回nil。有问题的iphone.splang文件是一个~275 KB的文本文件,它与应用程序捆绑在一起(通常可以加载)。
我已经验证它是pathForResource:ofType:返回nil,而不是mainBundle方法。
答案 0 :(得分:1)
这可能是国际化的问题。 根据{{3}},如果找不到文件,pathForResource只返回nil。但它也说:
该方法首先在指定包的非本地化资源目录中查找匹配的资源文件。 [...]如果找不到匹配的资源文件,则它会查找任何可用语言特定的“.lproj”目录的顶层。 (特定于语言的目录的搜索顺序对应于用户的首选项。)它不会通过任何这些位置的其他子目录进行递归。
也许您正在使用不同语言或模拟器的不同机器上尝试使用代码。
此外,[NSBundle mainbundle]
可以返回nil,因此执行任何调用也会返回nil。
[...]请务必检查返回值,以确保您拥有有效的捆绑包。