从 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 中检索字符串?

如何按数值对包含 NSDictionary 的 NSMutableArray 进行排序?

NSDictionary 和核心数据

从 NSDictionary 数组中获取具有值的数组