2010-12-22 77 views
8

我有一个我本地化的plist。我如何正确加载plist?如何加载正确的本地化文件?

现在,我使用这个代码:

NSArray *numbersArray = [[NSArray alloc] initWithContentsOfFile: 
     [[NSBundle mainBundle] pathForResource:@"Numbers" ofType:@"plist"]]; 

什么我需要我的代码更改为以加载本地化的plist?

+0

这应该按原样工作。不是吗? – 2010-12-22 04:38:32

+0

@DaveDeLong - 是的,我的错误。我没有清理我的构建并从模拟器中删除它。 – Moshe 2010-12-22 20:11:44

回答

12
NSArray *numbersArray = [[NSArray alloc] 
    initWithContentsOfFile: 
    [[NSBundle mainBundle] pathForResource:@"Numbers" ofType:@"plist"]]; 

这应该工作只要你确保你有以下束布局:

MyApp.app 
// no Numbers.plist here 
..... 
en.lproj/ 
    Numbers.plist // english-version 
fr.lproj/ 
    Numbers.plist // french-version 

重要的是,你必须在根级Numbers.plist文件(aka-非本地化级别),因为如果您这样做,那么Numbers.plist将始终优先于本地化版本(出于性能原因)。