1

阅读有关NSSet它的文档说:

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

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

因此,我已经覆盖了最终将填充到 NSSet 中的类中的哈希。

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

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

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

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

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

4

1 回答 1

0

我想我不明白这个问题。NSSet 有内置方法 containsObject。为什么这不能满足您的需求?

于 2013-10-29T01:34:48.647 回答