从.plist文件加载NSArray

时间:2011-09-07 18:10:45

标签: arrays xcode null plist

好的,所以我知道这个问题看起来很基本,但我无法找到解决问题的方法 -

我的项目中有一个名为'feeling'的.plist文件。我的plist文件是:

<plist version="1.0">
<dict>
    <key>feelings</key>
    <array>
        <string>Happy</string>
        <string>Sad</string>
    </array>
</dict>
</plist>

在.m文件下 - (void)ViewDidLoad;我正在尝试使用以下代码检索plist的内容:

NSString *path = [[NSBundle mainBundle] pathForResource:@"feelings" ofType:@"plist"];
NSArray *tempArray = [[NSArray alloc] initWithContentsOfFile:path];

self.feelingsArray = tempArray;
[tempArray release]; 

但是我似乎没有从.plist文件加载数组并执行以下代码:

NSLog(@"feelings: %@", feelings); 

返回(null)

谁能弄清楚我哪里出错了?从我以前的工作开始,对我来说这一切似乎都很好。

2 个答案:

答案 0 :(得分:3)

它返回一个不是数组的字典对象,

NSString *path = [[NSBundle mainBundle] pathForResource:@"feelings" ofType:@"plist"];
NSDictionary *tempDict = [[NSDictionary alloc] initWithContentsOfFile:path];
NSLog(@"Feelings: %@",tempDict);
[tempDict release]; 

答案 1 :(得分:2)

plist文件的顶级是字典,而不是数组。您应该使用NSDictionary代替NSArray

NSDictionary *tempDict = [[NSDictionary alloc] initWithContentsOfFile:path];
self.feelingsArray = [tempDict objectForKey:@"feelings"];
[tempDict release];