从NSDictionary检索数据

时间:2010-07-08 16:25:32

标签: iphone uitableview nsmutablearray nsmutabledictionary

我不太清楚我是否理解如何执行以下操作。

如果我想添加例如作者和字典的标题(键,值)。用数据填充该字典,然后有另一个字典,例如说k = genre v =艺术家名称并用数据填充。

然后我想将字典添加到数组中。

首先是如何做到的?第二,如果我允许用​​户记录他们自己的条目怎么办?所以我必须在屏幕上显示文本字段,当用户完成时,它将字段作为键值对存储在新字典中,例如用户的字典。

稍后我尝试用用户输入的数据填充tableview时会怎样做,我不知道该字典中的键或值,以便如何检索该数据?

我的意思是假设我想从数组索引2加载用户的字典并用每个字典条目填充tableview的单元格,这是怎么做的?也许是一个像数组一样的方法(在index blah blah获取entry.title),在字典中获取Key值?

如何实际加载用户输入的数据,他们不知道这些值?

此致

2 个答案:

答案 0 :(得分:8)

将作者和标题添加到字典中(假设它们是已存在的对象 - 在您的情况下可能是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
}

答案 1 :(得分:3)

您可以使用allKeys在字典中获取NSArray键。然后,您可以使用objectForKey:

检索值
for (id key in [myDict allKeys]) {
    NSLog(@"key: %@, value: %@", key, [dictionary objectForKey:key]);
}