通过索引访问NSMutableDictionary中的对象

时间:2009-09-25 06:26:07

标签: objective-c iphone cocoa-touch xcode

要按顺序显示NSMutableDictionary中的键/值(在tableview中),我需要通过索引访问它们。如果通过索引访问可以在该索引处给出密钥,那么我可以获得该值。有没有办法做到这一点或不同的技术?

2 个答案:

答案 0 :(得分:122)

您可以使用allKeys方法获取包含对象键的NSArray。然后,您可以按索引查看。请注意,键出现在数组中的顺序是未知的。例如:

NSMutableDictionary *dict;

/* Create the dictionary. */

NSArray *keys = [dict allKeys];
id aKey = [keys objectAtIndex:0];
id anObject = [dict objectForKey:aKey];

编辑:实际上,如果我理解你想要做的事情,你可以使用快速枚举轻松完成,例如:

NSMutableDictionary *dict;

/* Put stuff in dictionary. */

for (id key in dict) {
    id anObject = [dict objectForKey:key];
    /* Do something with anObject. */
}

编辑:修正了Marco指出的拼写错误。

答案 1 :(得分:9)

您可以使用字典的allKeys方法获取所有键的数组;然后你可以通过索引访问数组。但是,字典本身没有固有的顺序,因此在更改字典之前和之后获得的键的顺序可能完全不同