与第二组相比,NSSet 计数唯一条目

NSSet count unique entries compared to 2nd set

我有两组并使用 isSubsetOfSet: 来确定接收组是否全部存在于另一组中。但是,当 isSubsetOfSet: 失败时,我需要弄清楚接收集中有多少个唯一条目。例如:

NSSet *set1 = [NSSet setWithObjects:@"1", @"2", @"3"];
NSSet *set2 = [NSSet setWithObjects:@"1", @"3", @"4", @"5"];

if (![set1 isSubsetOfSet:set2]) {

    How many items are in set1 that are not in set2? The answer should be 1. (a string "2")
}

如有任何帮助,我们将不胜感激。谢谢

您可以制作 set1 的可变副本,然后从中减去 set2,如下所示:

NSMutableSet *missing = [NSMutableSet setWithSet:set1];
[missing minusSet:set2];

现在 missing 包含 set2 中缺失的 set1 中的所有对象。您可以跳过 isSubsetOfSet: 的调用,而是将 missing.length 与零进行比较。