2010-08-05 203 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