比较不同数组中的对象属性(objective-c)

时间:2011-06-20 12:54:37

标签: iphone objective-c arrays compare

我有一系列当前可以在白天观看的动物物品 - 例如,星期一将返回星期一可用的所有动物等。

我还有一组已保存的动物对象。

如何确保已保存的动物不会出现在当前动物列表中?

如果currentAnimal.name等于savedAnimal.name?

我需要两个数组中的对象,所以我认为比较.name属性很重要吗?

2 个答案:

答案 0 :(得分:4)

覆盖isEqual和hash以对名称进行比较,如果这是您认为使对象“相等”的话。

- (BOOL)isEqual:(id)other {
    if (other == self)
        return YES;
    if (!other || ![other isKindOfClass:[self class]])
        return NO;
    return [((MyObject *)other).name isEqualToString:name];
}

- (NSUInteger)hash {
  return [name hash];
}

答案 1 :(得分:0)

如果您希望对象严格等于或方法isKindOfClass,则应使用isEqual方法。 看NSObject reference