比较NSObjects忽略指针

时间:2014-01-14 10:01:45

标签: ios iphone objective-c nsmutablearray nsobject

我有一个模型类(NSObject的子类),我存储在2个可变数组中。在一个数组中,我直接存储对象,而在另一个数组中,我使用[myObject copy]存储它的副本。我想通过忽略指针,即它们存储的地址来比较这两个数组。如果对象匹配,则应返回YES

我尝试使用isEqualToArray,但它对NSObject子类不起作用,因为它也会比较指针。

建议或任何解决此问题的工作表示赞赏。

1 个答案:

答案 0 :(得分:1)

你必须在NSObject的子类中重写两个方法:

- (BOOL)isEqual:(id)object
- (NSUInteger)hash

添加你想要的逻辑isEqual方法,例如:

- (BOOL)isEqual:(id)object
{
    MyObject *obj = (MyObject*)object;
    if ([self.name isEqualToString obj.name])
        return YES;
    else
        return NO;
}

网上有很多例子。之后你可以cal isEqual来比较你的对象。 希望这有帮助。