检查对象数组中是否存在对象而不进行循环

时间:2013-05-16 08:09:08

标签: objective-c nsmutablearray

我想检查我的NSMutableArray是否包含我的自定义对象。但是,如果我理解正确包含函数搜索数组中的相同对象(放置在相同的内存点)

if(![objectArray containsObject:objToCheck])
{
    [objectArray addObject:objToCheck];
}       

我知道objectArray与objToCheck相比具有相同的变量值相同的对象,但总是返回false。有没有办法在不编写自定义循环和按参数比较对象的情况下检查这个?

2 个答案:

答案 0 :(得分:4)

覆盖自定义对象的[NSObject isEqual:]方法(实际上它是NSObject协议的一部分),并检查任何对您有意义的实例变量,以使对象被认为是相等的。

Here's关于此主题的Apple Cocoa Competency 文章。

答案 1 :(得分:0)

您可以尝试从阵列中创建临时NSSet,并针对成员资格进行测试。