我看到了很多关于[NSBundle MainBundle] pathForResource
的问题(使用inDirectory与否),但我的情况似乎有所不同。
我的问题是:是的,如果没有本地化,它适用于子目录中的任何文件。例如,当我使用
时,它会返回文件data/a/words.txt
的正确路径
[[NSBundle mainBundle] pathForResource:@"words.txt" ofType:nil inDirectory:@"data/a"]
但是,在我对words.txt
进行了本地化后,让我们说实际路径变为:data/a/en.lproj/words.txt
,然后上面的代码再也找不到路径了。
我检查了.app包中的文件,并且该文件已被复制到正确的路径(data/a/en.lproj)
,它只是代码无法找到它。
我正在使用XCode 5.1.1
Isn' t pathForResource
应该自动查找文字吗?
答案 0 :(得分:1)
尝试将forLocalization
添加到pathForResource
,如下所示:
NSArray* availableLocalizations = [[NSBundle mainBundle] localizations];
NSArray* userPrefered = [NSBundle preferredLocalizationsFromArray:availableLocalizations forPreferences:[NSLocale preferredLanguages]];
NSString *indexPath = [[NSBundle mainBundle] pathForResource:@"words" ofType:@"txt" inDirectory:@"data/a" forLocalization:[userPrefered objectAtIndex:0]];