我需要做一个方法来比较一些NSSet,看看是否所有的对象都在那里,或者它是否缺少一个对象,以及它是哪个对象。我只是做了viewDidLoad方法,但我需要一个方法,将检查所有的NSSet (有很多)。我做的不是很好。
- (void)viewDidLoad
{
[super viewDidLoad];
NSMutableSet *masterSet = [[NSMutableSet alloc] initWithObjects:@"0", @"1", @"2", @"3", @"4" ,nil];
NSMutableSet *set2 = [[NSMutableSet alloc] initWithObjects:@"0", @"1", @"2", @"3", nil];
NSMutableSet *set3 = [[NSMutableSet alloc] initWithObjects:@"2", @"10", @"12", @"14", @"18", nil];
if ([masterSet intersectsSet:set2] == [set2 count]) {
NSLog(@"set2: %@", set2);
}
}在本例中,我尝试检查set2上的所有对象是否都在masterSet中,所以我打印set2。我不明白为什么这不能工作,因为这不能打印在日志上。
如果有人可以帮助我,我需要在一个方法上设置这个" If“,这个方法将检查我拥有的所有NSset,并检查是否缺少一个完全匹配的对象,也获取这个对象。谢谢大家
发布于 2012-07-10 16:04:10
intersectsSet:返回一个BOOL。这意味着0(假)或1(真)。因此,只要您对set2的计数大于1,该语句就永远不会为真。
您要查找的方法是intersectSet
发布于 2012-07-10 16:11:50
如果我理解正确的话,您想知道masterSet中的每个对象是否都在set2中。
您可以使用isEqualToSet:检查这一点
if ([masterSet isEqualToSet:set2]) {
NSLog(@"set2: %@", set2);
}文档中的
:
如果的内容与接收集的内容相等,则otherSet返回 YES,否则返回NO。
如果两个集合都有相同数量的成员,并且一个集合中的每个成员都存在于另一个集合中,则两个集合具有相等的内容。
https://stackoverflow.com/questions/11408673
复制相似问题