使用自定义类属性的两个NSMutableSets的相等性

时间:2013-03-08 06:01:42

标签: objective-c cocoa-touch cocoa equality nsmutableset

你如何检查两个NSMutableSets是否相等相同的成员,相同数量的成员)?

我对isEqualToSet的实施似乎不起作用。

// 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编程,所以我现在只知道基础知识。

1 个答案:

答案 0 :(得分:2)

如果要检查相应的name属性是否相同,则以下内容应该有效:

[[group valueForKeyPath:@"users.name"] isEqualToSet:[members valueForKey:@"name"]]

[group valueForKeyPath:@"users.name"]返回组中所有用户的名称集,[members valueForKey:@"name"]返回members集中所有用户的名称集。

更新:正如评论中所表明的那样,members是一组字符串,而不是一组用户对象。因此,代码简化为:

[[group valueForKeyPath:@"users.name"] isEqualToSet:members]