谓词是在NSSet中查找对象的最有效方法吗?

阅读关于NSSet的文档,它说:

当元素的顺序不重要时,您可以使用集合作为数组的替代,并且测试集合中是否包含对象时的性能是一个考虑因素。

这正是我需要的,因为表现对我来说非常重要。

所以我已经覆盖了最终会在NSSet中填充的类中的哈希值。

- (NSUInteger)hash
{
    return [[self recordDate] hash];
}

换句话说,recordDate在我的情况下总是唯一的,我期望在这里有独特的哈希值。

根据文档,似乎我可以在NSSet / NSMutableSet中查找对象的唯一方法是通过谓词。

NSPredicate *predicate = [NSPredicate predicateWithFormat:@"recordDate == %@", recordDate];
NSSet *objectsWithDesiredWeek = [mySet filteredSetUsingPredicate:predicate];

我不确定,如果我不俯视的东西。 这是在NSSet中查找对象的最有效方法吗? 有没有像键/值?


我想我不明白这个问题。 NSSet具有内置方法containsObject。 为什么这不符合你的需求?

链接地址: http://www.djcxy.com/p/85157.html

上一篇: Are predicates the most efficient way to lookup an object in NSSet?

下一篇: NSDictionary, NSArray, NSSet and efficiency