2010-08-05 89 views
0

我有NSArrayNSDictionary组成的对象。需要在NSDictionary中找到匹配关键字名称的对象的NSArray中的索引。词典只有1个元素。什么是最快的方式呢?用谓词过滤,然后使用indexOfObject?在NSArray中搜索对象

回答

0

该方法肯定会起作用,但如果您在寻找速度,则需要更改结构。数组并不意味着以这种方式进行搜索。但是,这是NSDictionary的目的。如果你有一个唯一的密钥,你为什么不把你的字典存储在NSDictionary,并使用更快,更快objectForKey:方法?

如果您还需要维护排序,则可以使用字典中键的NSMutableArray创建自定义“排序字典”类。

+0

我真的很难想象如果在父'NSDictionary'中有单个'NSDictionary'对象时如何使用'objectForKey'。假设我将我的'NSArray'转换为'NSDictionary',那么父键将是包含字典元素的索引,其中包含我必须搜索的一些键。所以就像这样'0 => [key1 => val1],1 => [key2 => val2],N => [keyM => valM]等等。由'keyM'给出,我想知道'N'。我不确定如何建立一个谓词来访问字典,所以不能建立我自己的版本^^ – Pablo 2010-08-05 08:18:02

+0

我建议你使用键(你的'key1','key2'等)作为父字典的键,而不是将可能的索引用作父字典的键。如果您的订购非常重要,而且速度不是问题,那么请按照您的原始计划行事。 – andyvn22 2010-08-05 17:25:33