我创建了一个名为“医院”的plist,将第一行插入一个数组,其中三个项目为字符串。
我的代码出了什么问题:
NSArray *hospitals = [[NSArray alloc] initWithContentsOfFile:[[NSBundle mainBundle] pathForResource:@"Hospitals" ofType:@"plist"]];
NSString *first = [[NSString alloc] initWithFormat:@"%@", [hospitals objectAtIndex:0]];
NSLog(@"%@",first);
结果这给了我(null)!
答案 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);