如何从nsmutabledictionary中检索值

时间:2011-11-24 12:21:26

标签: iphone nsmutabledictionary

我已将数据存储在nsmutabledictionary中,在字典值下方给出 我存储的值和值是实例,如何检索对象中的值?

English =     (
    "<Row: 0x4e50560>",
    "<Row: 0x4e50790>",
    "<Row: 0x4e509d0>"
);
Roman =     (
    "<Row: 0x4e50c60>",
    "<Row: 0x4e50ea0>"
);
japanese =     (
    "<Row: 0x4e51150>",
    "<Row: 0x4e513a0>",
    "<Row: 0x4e515e0>",
    "<Row: 0x4e51860>"
);
arab =     (
    "<Row: 0x4e50140>"
);

当我检索它时,查看最后一个对象&amp;我无法在代码中查看其他对象。如何访问字典的每个键中的值,并将值作为对象。任何人都可以解释我在上面的代码中缺少的内容。

这是我的代码

NSArray *keys;
    id key, value;

    keys = [appDelegate.viewDictionary allKeys];
    int count = [keys count];
    for (int i = 0; i < count; i++)
    {
        key = [keys objectAtIndex: i];
        value = [appDelegate.viewDictionary objectForKey: key];
        NSLog (@"Key: %@ for value: %@", key, value);
        for(Row *rs in value) {
            NSLog(@"%@", rs.user);
            //cell.textLabel.text = rs.user;
        }
    }

2 个答案:

答案 0 :(得分:1)

以下是一个接近您的问题的示例,请查看差异代码,看看它是否有帮助。

NSDictionary *dict = [NSDictionary dictionaryWithObjectsAndKeys:
      [NSArray arrayWithObjects:
       @"<Row: 0x4e50560>",
       @"<Row: 0x4e50790>",
       @"<Row: 0x4e509d0>",
       nil], @"English",

      [NSArray arrayWithObjects:
       @"<Row: 0x4e50c60>",
       @"<Row: 0x4e50ea0>",
       nil], @"Roman",

      [NSArray arrayWithObjects:
       @"<Row: 0x4e51150>",
       @"<Row: 0x4e513a0>",
       @"<Row: 0x4e515e0>",
       @"<Row: 0x4e51860>",
       nil], @"Japanese",

      [NSArray arrayWithObjects:
       @"<Row: 0x4e50140>",
       nil], @"Arab",

      nil];


for (NSString *key in dict) {
    NSArray *value = [dict objectForKey:key];
    NSLog (@"Key: %@ for value: %@", key, value);
    for(NSString *rs in value) {
        NSLog(@"%@", rs);
    }
}

答案 1 :(得分:0)

'allKeys'是否为您提供了包含对象(键)的实际数组的引用?尝试为“keys”数组分配内存:

keys = [NSArray arrayWithArray:[appDelegate.viewDictionary allKeys]];