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

时间:2013-10-28 23:39:38

标签: ios ios7 nspredicate nsset nsmutableset

阅读有关NSSet的说明文件:

  

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

这正是我所需要的,因为性能对我来说非常重要。

所以我覆盖了最终将在NSSet中填充的类中的哈希。

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

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

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

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

我不确定,如果我没有忽略某些东西。这是在NSSet中查找对象的最有效方法吗?是不是像Key / Value这样的东西?

1 个答案:

答案 0 :(得分:0)

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