我有一个NSSet
包含数千个NSValue
对象(包装CGPoints
)。我想很快找到给定的CGPoint
值是否存在于NSSet
. 在我看来member:
, an 的方法NSSet
可能在这里完成工作,除了它使用isEqual:
. NSValue
对象使用isEqualToValue:
,所以当我执行代码时:
[mySet member:valueToCheck];
它实际上导致 Xcode 崩溃。
1) 有什么方法可以使用自定义相等检查来使其适用于NSValue
对象吗?
2)这甚至是最好的方法吗(即首先member:
足够快)?场景是我有一个NSSet
包含大量表示屏幕(iPad)上像素的点。稍后我需要以每秒数千个点来轰炸该集合,以查看它们是否存在于集合中。为了实现这一点,我的方法似乎很粗糙。我考虑过创建一个巨大的二维位数组,每个索引代表屏幕上的一个像素。一旦我知道我正在测试的点,我就可以直接跳到数组中的那个点并检查 1 或 0 ......这听起来更好还是更糟?
谢谢