Если возможно, используйте NSMutableSets и просто используйте пересечение.
Удаляет из получателя каждый объект, который не является членом другого данного набора.
- (void)intersectSet:(NSSet *)otherSet
Вы можете создать наборы с помощью:
- (id) setWithArray: (NSArray *) anArray