我使用 NSSet 有以下星座:
NSSet {
NSDictionary {
"Unique-Identifier-Key": Unique Value
"Key2": ValueABC
"Key3": ValueDEF
}
NSDictionary {
"Unique-Identifier-Key": Unique Value
"Key2": ValueFGH
"Key3": ValueJKL
}
NSDictionary {
"Unique-Identifier-Key": Unique Value
"Key2": ValueRST
"Key3": ValueXYZ
}
}
我正在寻找一种通过其唯一值从 NSSet 中获取一个字典的方法。该 NSSet 中有很多 NSDictionaries,因此我正在寻找性能最佳的方式。
(NSSet *)objectsPassingTest:(BOOL (^)(id obj, BOOL *stop))predicate
按照以下方式使用怎么样?
NSString *idSearched = ...;
NSSet *results = [MySet objectsPassingTest:^(id obj,BOOL *stop){
if ([obj valueForKey:@"Unique-Identifier-Key"] == idSearched) return YES;
else return NO;
}];
这是最高效的解决方案吗?当我读到 NSSet 在查找对象方面比 NSArray 具有更好的性能时,我使用了 NSSet。而且我不需要对象的有序序列。