从 NSDictionary 检索数据
Posted
技术标签:
【中文标题】从 NSDictionary 检索数据【英文标题】:Retrieving data from a NSDictionary 【发布时间】:2010-07-08 16:25:31 【问题描述】:我不太确定我是否了解如何执行以下操作。
如果我想添加例如字典的作者和标题(键,值)。用数据填充该字典,然后再使用另一个字典,例如k = 流派 v = 艺术家姓名并用数据填充它。
然后我想将字典添加到数组中。
首先这是怎么做的?其次,如果我允许用户记录他们自己的条目怎么办。所以我必须在屏幕上显示文本字段,当用户完成后,它将字段作为键值对存储在新字典中,例如用户字典。
稍后尝试用用户输入的数据填充表格视图时我会做什么,我不知道该字典中的键或值,所以我该如何检索这些数据?
我的意思是,假设我想从数组索引 2 加载用户的字典,并用每个字典条目填充 tableview 的单元格,这是如何完成的?也许像数组上的方法(在索引 blah blah 处获取 entry.title),获取字典中的键值?
如何才能真正加载他们不知道值的用户输入数据?
问候
【问题讨论】:
【参考方案1】:将作者和标题添加到字典中(假设它们是已经存在的对象 - 在您的情况下可能是 NSString
实例):
NSMutableDictionary *books = [[NSMutableDictionary alloc] initWithCapacity:10];
[books setObject:title forKey:author];
流派/艺术家也是如此:
NSMutableDictionary *music = [[NSMutableDictionary alloc] initWithCapacity:10];
[books setObject:artist forKey:genre];
然后将它们放入一个数组中:
NSArray *theArray = [NSArray arrayWithObjects:books, music, nil];
然后读取数组索引 2 处的内容:
id key;
NSDictionary *theDictionary = [theArray objectAtIndex:2];
id value;
for (key in [theDictionary allKeys])
value = [theDictionary objectForKey:key];
// do something with the value
【讨论】:
谢谢。如果我想根据用户选择下一个还是上一个来一次检索一个呢? 数据库会更高效吗?【参考方案2】:您可以使用allKeys 在字典中获取键的 NSArray。然后您可以使用 objectForKey 检索值:
for (id key in [myDict allKeys])
NSLog(@"key: %@, value: %@", key, [dictionary objectForKey:key]);
【讨论】:
以上是关于从 NSDictionary 检索数据的主要内容,如果未能解决你的问题,请参考以下文章
JSON 解析:从 NSDictionary 检索数据并将其存储在数组中
从 NSDictionary 检索键/值对会导致数据不正确并崩溃
如何从目标 C 中的 NSDictionary 中检索字符串?