我有一个以下形式的plist:
Root(array)--->第1项(字典)----> Sch(字符串) --->名称(字符串) ---->价格(数量) ---->第2项(字典)----> .....与第1项相同
如何访问每一行(item1到...)及其子(Sch,Name等)?一次一个?
我用:
NSString *path = [[NSBundle mainBundle] bundlePath];
NSString *finalPath = [path stringByAppendingPathComponent:@"Data.plist"];
NSDictionary *plistData = [[NSDictionary dictionaryWithContentsOfFile:finalPath] retain];
加载文件。我应该如何接触每个孩子?
我想要做的是,我有一个NSString *消息,我想要做的是搜索整个plist以匹配字符串并显示整个项目1.任何建议?
答案 0 :(得分:2)
从plist初始化集合时,类型是根级别对象。因此,您不会初始化字典,而是像这样的数组:
NSArray *plistData = [[NSArray arrayWithContentsOfFile:finalPath] retain];
然后你会这样访问它:
NSString *sch;
NSString *name;
NSString *price;
for (NSDictionary *aDict in plistData) {
sch = [aDict objectAtKey:"Sch"];
name = [aDict objectAtKey:"Name"];
price = [aDict objectAtKey:"price"];
//.. do whatever
}
答案 1 :(得分:1)
Here是一个讨论的链接,它提供了一个很好的示例,说明如何访问您的数据以及哪种类型的存储方案在某些情况下会更有益。 @ TechZen的解决方案是目标,我只是认为这个问题会增加额外的资源。希望这有帮助!