我有一个可以按天查看的当前动物对象数组,例如,星期一将返回星期一可用的所有动物,等等。
我还有一系列保存的动物物品。
如何确保保存的动物不会出现在当前动物列表中?
类似于,如果currentAnimal.name等于savedAnimal.name?
我需要两个数组中的对象,所以比较.name属性很重要?
如果您认为这是使对象"相等"的原因,则覆盖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];
}
如果希望对象严格等于或方法为isKindOfClass,则应使用isEqual方法。查看NSObject引用