我试图做NSCountedSet
但是我需要忽略一个属性,我试图覆盖我的对象的isEqual
方法,并对所有属性进行手动比较,除了一个我想忽略但它没有工作
关于如何实现它的任何想法?
更新
我的班级
@interface GSOrderMenuMenuContent : GSBaseModel
@property (copy, nonatomic) NSNumber *order_content_id;
@property (copy, nonatomic) NSNumber *item_id;
@property (copy, nonatomic) NSNumber *price;
@property (copy, nonatomic) NSNumber *priceWithModifiers;
@property (copy, nonatomic) NSString *course;
@property (copy, nonatomic) NSString *itemName;
@property (nonatomic) GSMenuItem* item;
@property (nonatomic) NSMutableArray *modifiers;
@property (copy, nonatomic) NSNumber *isAlreadyPrinted;
@property (copy,nonatomic) NSNumber *isDeleted;
-(GSOrderMenuMenuContent*)deepCopy;
-(GSOrderContent*) orderContent;
-(BOOL)isEqual:(GSOrderMenuMenuContent*)object;
@end
用法:
NSCountedSet* countedSet = [[NSCountedSet alloc] initWithArray:contents];
其中contents是类对象的数组
不会调用向isEqual
添加断点(但是如果正在执行[NSarray containsObject:...]
答案 0 :(得分:1)
正如isEqual:
方法的文档中所述,您必须始终实现相应的hash
方法。这两种方法必须一起实施。
两个比较相等的对象也必须返回相同的hash
值。