plists - iOS开发(NSString)

时间:2011-08-28 10:35:58

标签: iphone plist

我创建了一个名为“医院”的plist,将第一行插入一个数组,其中三个项目为字符串。

我的代码出了什么问题:

NSArray *hospitals = [[NSArray alloc] initWithContentsOfFile:[[NSBundle mainBundle] pathForResource:@"Hospitals" ofType:@"plist"]];
    NSString *first = [[NSString alloc] initWithFormat:@"%@", [hospitals objectAtIndex:0]];
    NSLog(@"%@",first);

结果这给了我(null)!

2 个答案:

答案 0 :(得分:1)

属性列表文件不存在(检查目标的“复制资源”构建阶段),具有不同的名称(请注意iOS的文件系统区分大小写),根本不是属性列表(也许它有语法错误),不可读或属性列表的根不是数组,而是字典。

如果hospitals == nil以上任何一个问题都存在。

答案 1 :(得分:0)

试试这个:

NSString *errorDesc = nil;
NSPropertyListFormat format;
NSData *plistXML = [[NSFileManager defaultManager] contentsAtPath:[[NSBundle mainBundle] pathForResource:@"Hospitals" ofType:@"plist"]];
NSMutableDictionary *properties = (NSMutableDictionary *)[NSPropertyListSerialization propertyListFromData:plistXML mutabilityOption:NSPropertyListMutableContainersAndLeaves format:&format errorDescription:&errorDesc];
NSArray *hospitals = (NSArray *)[properties valueForKey:@"names"]; 
NSString *first = [hospitals objectAtIndex:0];
NSLog(@"%@",first);