Вы уверены, что вам нужно NSArray
с? Для пересечений было бы лучше использовать NSSet
с. Для получения дополнительной информации об использовании NSArrays и NSSet, пожалуйста, обратитесь к Какао с любовью: NSArray или NSSet, NSDictionary или NSMapTable .
Если вы используете NSSet
, вам нужно создать новый NSMutableSet
, который имеет метод intersectSet:
, который может использоваться для вашей цели:
NSMutableSet *set1 = [[NSMutableSet alloc] initWithObjects:@"0", @"1", @"2", @"3", @"4", @"5", @"6", @"7", @"8", @"9", nil];
NSMutableSet *set2 = [[NSMutableSet alloc] initWithObjects:@"2", @"4", @"6", @"8", @"10", @"12", @"14", @"18", nil];
NSLog(@"set1: %@", set1);
NSLog(@"set2: %@", set2);
[set1 intersectSet:set2];
NSLog(@"isec: %@", set1);
Вы можете создать NSMutableSet
из NSArray
, используя метод addObjectsFromArray:
:
NSArray *array = [[NSArray alloc] initWithObjects:@"1", @"2", nil];
NSMutableSet *set = [[NSMutableSet alloc] init];
[set addObjectsFromArray:array];
Возможно, вы также можете фильтровать NSArray
с помощью метода filterUsingPredicate:
, однако я никогда не работал с NSPredicate
s, поэтому это только предположение.