Objective c 如何对目标C中的多个集合执行并集

Objective c 如何对目标C中的多个集合执行并集,objective-c,nsmutablearray,nsarray,nsset,nsmutableset,Objective C,Nsmutablearray,Nsarray,Nsset,Nsmutableset,我有一个NSSet实例数组,如下面代码中所述 NSArray *a = @[@"1", @"2", @"3", @"4", @"5"]; NSArray *b = @[@"1", @"2", @"3", @"6", @"7"]; NSArray *c = @[@"1", @"7", @"8", @"9", @"5"]; NSArray *d = @[@"1", @"6", @"7", @"8", @"9"]; ... upto N number of arrays. 所有N个数组都是在NSSe

我有一个
NSSet
实例数组,如下面代码中所述

NSArray *a = @[@"1", @"2", @"3", @"4", @"5"];
NSArray *b = @[@"1", @"2", @"3", @"6", @"7"];
NSArray *c = @[@"1", @"7", @"8", @"9", @"5"];
NSArray *d = @[@"1", @"6", @"7", @"8", @"9"]; ... upto N number of arrays.

所有N个数组都是在
NSSet
的N个实例中定义的,使用
[NSSet setWithArray:][/code>方法从数组创建集合。集合的所有N个实例都存储在一个数组X中。现在,我需要对所有N个集合执行并集操作。我怎样才能做到这一点呢?

有不同的方法。最简单的方法是在数组(集合)上迭代,然后简单地将新元素添加到集合中

NSMutableSet *unionSet = [NSMutableSet new];
for( NSSet *singleSet in X) // X is an array of sets as mentioned in the Q
{
  [unionSet unionSet:singleSet];
}
但是,在统一之前不需要创建单个中间集,因为您也可以使用
-addObjectsFromArray:
NSMutableSet
)将数组本身添加到unionSet

作为提示,我想在您的示例中提到(可能与实际单词不同),简单地使用数字可能更容易从一开始就使用
NSIndexSet
NSMutableIndexSet