我有一个存档,存储在“Presidents.plist”文件中。它存在,我可以使用pathForResource
方法找到它。我还使用initWithContentsOfFile
NSData
方法获取数据来检索数据。现在的问题出在这行代码中。
NSString *path = [[NSBundle mainBundle] pathForResource:@"Presidents"
ofType:@"plist"];
NSData *data;
NSKeyedUnarchiver *unarchiver;
data = [[NSData alloc] initWithContentsOfFile:path];
unarchiver = [[NSKeyedUnarchiver alloc] initForReadingWithData:data];
id presidents = [unarchiver decodeObjectForKey:@"Presidents"];
由于某种原因,它返回一个null类而不是我期望的NSArray类。任何人都可以告诉我这种情况发生的原因,我该如何解决这个难题?
我正在上课......
NSLog(@"presidents class = %@", NSStringFromClass([presidents class]));
答案 0 :(得分:1)
我遇到了同样的问题,Method 2帮了我。
使用TextWrangler将“BIDPresident”更改为Presidents.plist中的“President”或尝试我的文件http://www.fileswap.com/dl/o29Sxm48g0/Presidents.plist.html
答案 1 :(得分:0)
您可以通过以下方式访问该对象:
NSMutableDictionary dict = [NSKeyedUnarchiver unarchiveObjectWithFile:archieverPath];
archieverPath是plist的路径。 你可以通过
返回对象return [dict objectForKey:key];
答案 2 :(得分:0)
在iOS的更新版本中,pList的根对象不能是数组。我最近遇到了这个问题。请尝试使用字典。