我在将plist文件转换为可变数组时遇到问题,因此我可以使用它来填充表视图。我创建了一个名为MyDeals.plist的plist。我将根作为一个数组,然后添加两个字典作为该数组的子集,然后用字符串填充这些字典。
代码如下:
NSString *myfile = [[NSBundle mainBundle] pathForResource:@"MyDeals" ofType:@"plist"];
NSLog(@"%@", myfile);
NSMutableArray *myArray = [[NSMutableArray alloc] initWithContentsOfFile:myfile];
NSLog(@"%@", myArray);
self.dealsArray = myArray;
[myArray release];
第一个NSLog注销了plist文件的正确路径,所以它一直运行到那时为止然后第二个日志返回'(null)'所以myArray实际上并没有因为某种原因从myfile中获取信息。有任何想法吗?谢谢!
答案 0 :(得分:1)
首先尝试将文件加载到NSData
,以便了解问题所在。
NSError *error;
NSData *data = [NSData dataWithContentsOfFile:myfile options:0 error:&error];
if (!data) {
NSLog(@"error loading plist from %@: %@", myfile, error);
return;
}
self.dealsArray = [NSPropertyListSerialization propertyListWithData:data
options:NSPropertyListMutableContainers format:NULL error:&error];
if (!self.dealsArray) {
NSLog(@"error parsing plist from %@: %@", myfile, error);
return;
}
答案 1 :(得分:0)
我可能错了但我认为必须将plist反序列化为字典而不是数组,即使根元素是数组也是如此。如果你想从文件中取一个数组,它可能应该是一个从NSArray writeToFileAtmoically创建的文件。