阅读 plist 字典
Posted
技术标签:
【中文标题】阅读 plist 字典【英文标题】:Reading a plist dictionary 【发布时间】:2011-05-04 08:29:59 【问题描述】:我一直在试图弄清楚这是如何工作的。我有一个 plist,它是一个字典数组。我需要在数组中分别读取每个字典并将每个字典映射到表格视图中的单元格。我觉得这非常简单,但是我没有成功访问第一个字典并将每个键/值对写入 tableview;然后响应“下一步”按钮,将第二个字典写入 tavbeview,然后写入第三个字典等等。我不必后退,但我必须在 tableview 中显示每个连续字典的内容。 任何提示/代码示例将不胜感激。
【问题讨论】:
【参考方案1】:这是你的意思吗?
NSDictionary *cellValue = [self.array objectAtIndex:[indexPath row]];
NSString *label = [cellValue objectForKey:@"label"];
[cell.textLabel setText:label];
array
使用plist
的内容进行初始化。 plist
有一个字典,其键名为label
,然后可以通过objectForKey
访问。
我不太确定您在编写字典时在做什么,但我所做的是创建一个名为 DataObject
的自定义类,并添加了一些方法,例如 addNewItem
和 writeToFile
,如下所示:
NSString *documentsDirectory = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:0];
NSString *finalPath = [documentsDirectory stringByAppendingPathComponent:fileTitle];
[array writeToFile:finalPath atomically:YES];
对于addNewItem:(NSString *)label
:
NSDictionary *newItem = [[NSDictionary alloc] initWithObjectsAndKeys:label,@"label", nil];
[array addObject:newItem];
[newItem release];
[self writeTask];
然后像这样简单地访问它们:
DataObject *db = [[DataObject alloc] init];
[db addNewItem:youItemTitle];
[db release];
虽然这对内存管理非常不利。
【讨论】:
以上是关于阅读 plist 字典的主要内容,如果未能解决你的问题,请参考以下文章
如何使字典 NSDictionary 成为阅读、插入的线程安全?