// 1 - Find the matching item index
NSIndexSet* indexes = [[self.orderItems allKeys] indexesOfObjectsPassingTest:^BOOL(id obj, NSUInteger idx, BOOL *stop) {
IODItem* key = obj;
return [searchItem.name isEqualToString:key.name] &&
searchItem.price == key.price;
}];
// 2 - Return first matching item
if ([indexes count] >= 1) {
IODItem* key = [[self.orderItems allKeys] objectAtIndex:[indexes firstIndex]];
return key;
}
このコードでは、辞書内のすべてのキーを調べて、それを検索項目と比較しています。
この辞書に同じ検索項目を持つ複数のキーがあるのはいつですか?
キーについて私が知っていることは、それらは一意であるということですが、このコードは、特定の検索項目に一致するキーのすべての出現に対してインデックス セットを維持しています。