好的,所以我知道这个问题看起来很基本,但我无法找到解决问题的方法 -
我的项目中有一个名为'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)
谁能弄清楚我哪里出错了?从我以前的工作开始,对我来说这一切似乎都很好。
答案 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];