获取值NSDictionary的索引

时间:2014-10-25 15:29:28

标签: ios objective-c nsdictionary

我有这样的价值:@"2329300"而且我有NSDictionary这样:{@"John Appleseed":[@"2329300",@"2342322",@"32i249"]}

当我只获得整个列表中被称为值的字符串值时,如何在NSDictionary中找到键/值对的索引。我假设在dict中没有重复。

我知道indexForObject上有NSArray,但是dict有类似的东西吗?

我想它看起来像这样:

[NSDictionary indexForValue:value]; // returns index number.

即便如此,NSString也没有与该值匹配,因此我也需要一种解决方法。

1 个答案:

答案 0 :(得分:3)

你有一个基本的误解。字典是无序集合。他们的键/值对没有任何特定的顺序。您不能拥有键/值对的索引,因为这意味着固定的顺序。

把字典想象成一群孩子在操场上逛逛。你可以叫出一个孩子的名字“约翰尼,来这里!”并取出那个孩子(使用钥匙找到一个对象),但对于那些不会坐着不动的孩子来说,秩序意味着什么?

您可以从字典中创建一个键数组,并将其排序为特定顺序(操场上的孩子的字母列表),如果这是您想要的,或者您可以创建一个字典数组或数组包含任何所需属性的自定义数据对象。

编辑:

对于表视图,字典数组可能是一个不错的选择。数组中的每个条目都包含一个字典,其中包含字典中单元格的所有设置。如果您有一个分区表视图,那么您需要一个外部数组用于节,包含行的内部数组,以及包含字典的内部数组中的每个条目。

我倾向于将自定义数据对象更喜欢字典。 (一个对象,它只具有我想要的每个设置的属性。)这样,值列表及其类型是清晰的,并且相当自我记录。