首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >plists - iOS开发(NSString)

plists - iOS开发(NSString)
EN

Stack Overflow用户
提问于 2011-08-28 18:35:58
回答 2查看 259关注 0票数 0

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

我的代码出了什么问题:

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

这将导致我(null)的结果!

EN

回答 2

Stack Overflow用户

发布于 2011-08-28 18:51:20

属性列表文件不存在(检查目标的"Copy Resources“构建阶段),有不同的名称(请注意,iOS的文件系统区分大小写),根本不是属性列表(可能有语法错误),不可读,或者属性列表的根不是数组,而是字典。

如果为hospitals == nil,则上述任一项都是问题所在。

票数 1
EN

Stack Overflow用户

发布于 2011-08-28 18:47:37

试试这个:

代码语言:javascript
复制
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);
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7220392

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档