-[NSBundle pathForResource:ofType:inDirectory:] 为本地化资源返回 nil
Posted
技术标签:
【中文标题】-[NSBundle pathForResource:ofType:inDirectory:] 为本地化资源返回 nil【英文标题】:-[NSBundle pathForResource:ofType:inDirectory:] returns nil for localized resources 【发布时间】:2015-06-26 21:44:19 【问题描述】:我有一个这样的捆绑结构:
bundle's root
------atlases
------------en.lproj
--------------------test-hd.plist
------------es.lproj
--------------------test-hd.plist
但是当我尝试使用此代码获取 test-hd.plist 以进行当前本地化时
[[NSBundle mainBundle] pathForResource:@"test-hd.plist" ofType:nil inDirectory:@"atlases"]
它总是返回 nil。我的错误在哪里?我该如何解决?
附言“atlases”文件夹被添加为文件夹引用,并且 test-hd.plist 始终可以通过直接路径[[[NSBundle mainBundle] bundlePath] stringByAppendingPathComponent:@"atlases/en.lproj/test-hd.plist"]
【问题讨论】:
【参考方案1】:您的目录结构错误。 en.lproj
等,应该包含一个名为atlases
的目录,像这样:
<bundle root>
|-- en.lproj
|---- atlases
|------ test-hd.plist
|-- es.lproj
|---- atlases
\------ test-hd.plist
【讨论】:
谢谢,它正在工作,但有什么方法可以让我的目录结构正常工作吗? 而且似乎根据 Apple 的文档(-[pathForResource:ofType:inDirectory:]
讨论中的示例)它必须像我一开始所期望的那样工作...developer.apple.com/library/ios/documentation/Cocoa/Reference/…:
@SiarheiFedartsou:不,这就是NSBundle
搜索文件的方式。以上是关于-[NSBundle pathForResource:ofType:inDirectory:] 为本地化资源返回 nil的主要内容,如果未能解决你的问题,请参考以下文章
NSBundle pathForResource is NULL 取不到值
使用 [NSBundle mainBundle] pathForResource: ofType:inDirectory: 访问文件
NSBundle pathForResource 返回 nil 和子目录
iOS:[NSBundle pathForResource:ofType:inDirectory] 返回 nil?
使用 [[NSBundle mainBundle] pathForResource 获取 .plist 的路径时出现问题