【发布时间】:2013-03-08 06:01:41
【问题描述】:
您如何检查两个NSMutableSets 是否相等(相同的成员,相同的成员数量)?
我对@987654322@ 的实现似乎不起作用。
// members is a NSMutableSet of AUser objects
// users is also a NSMutableSet of AUser objects, it is an attribute of instances of the AGroup class
[[group valueForKey:@"users"] isEqualToSet:members]
AGroup
- users
AUser
- name (String)
如何通过检查名称属性来检查集合是否相等?
对不起,我的知识缺乏,这是我第一次接触iOS编程,所以我现在只知道基础知识。
【问题讨论】:
-
isEqualToSet:应该可以工作。也许是集合中的对象的问题。他们应该实现isEqual:和hash -
你设置的内容是什么?字符串或数字或其他? “
isEqualToSet”可能只查看集合中对象的地址来确定相等性。但是看上面的评论,可能也是在看某些类型的对象的内容。 -
哦,好的。谢谢你帮助我理解了这个问题。我将发布有关问题的更新。集合中的对象是自定义类的两个实例,虽然我不知道如何检查属性,但它们确实具有 String 属性。
-
已更新。是否还需要在这些自定义类中实现isEqual,我暂时没有做,主要是想检查NSMutableSets之间的名称字符串。 @xlc
-
您可以为您的自定义类实现
isEqual:和hash。但如果您只想比较名称,马丁的答案应该有效
标签: objective-c cocoa-touch cocoa equality nsmutableset