将PList信息传递给String然后传递给Mutable Array(iOS)

时间:2011-11-28 03:50:37

标签: ios xcode nsmutablearray plist

我在将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中获取信息。有任何想法吗?谢谢!

2 个答案:

答案 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创建的文件。