首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >NSSet intersectsSet实现

NSSet intersectsSet实现
EN

Stack Overflow用户
提问于 2012-07-10 15:39:11
回答 2查看 919关注 0票数 2

我需要做一个方法来比较一些NSSet,看看是否所有的对象都在那里,或者它是否缺少一个对象,以及它是哪个对象。我只是做了viewDidLoad方法,但我需要一个方法,将检查所有的NSSet (有很多)。我做的不是很好。

代码语言:javascript
复制
- (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,并检查是否缺少一个完全匹配的对象,也获取这个对象。谢谢大家

EN

回答 2

Stack Overflow用户

发布于 2012-07-10 16:04:10

intersectsSet:返回一个BOOL。这意味着0(假)或1(真)。因此,只要您对set2的计数大于1,该语句就永远不会为真。

您要查找的方法是intersectSet

票数 2
EN

Stack Overflow用户

发布于 2012-07-10 16:11:50

如果我理解正确的话,您想知道masterSet中的每个对象是否都在set2中。

您可以使用isEqualToSet:检查这一点

代码语言:javascript
复制
if ([masterSet isEqualToSet:set2]) {
    NSLog(@"set2: %@", set2);
}

文档中的

如果的内容与接收集的内容相等,则otherSet返回 YES,否则返回NO。

如果两个集合都有相同数量的成员,并且一个集合中的每个成员都存在于另一个集合中,则两个集合具有相等的内容。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11408673

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档