我有一个NSMutableOrderedSet,我正在添加和删除MTLModel. hash和isEqual方法都将为两个对象返回true,但containsObject将返回false.
有时这段代码有效,有时却没有.
models count: 1 isEqual: 1 hashes equal: 1 containsObject: 0
@property (nonatomic,strong) NSMutableOrderedSet *models; - (void)remove:(MTLModel *)model { NSLog(@"models count: %d",self.models.count); MTLModel *modelInSet = (MTLModel *)self.models.firstObject; NSLog(@"isEqual: %d",[modelInSet isEqual:model]); NSLog(@"hashes equal: %d",modelInSet.hash == model.hash); NSLog(@"containsObject: %d",[self.models containsObject:model]); }
更新:
作为后续,当NSMutableOrderedSet返回NO时返回YES:
[[self.models array] containsObject:model]
更新2:
如果我检查self.models中是否包含modelInSet,那么它也返回NO,即使它是firstObject返回的对象.
解决方法
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。