2009-10-31 1 views
1

У меня есть массив объектов в tableView. Я хочу, чтобы пользователь мог перейти на другую страницу и выбрать из контрольного списка объектов для фильтрации первого массива.Как фильтровать массив на основе объектов в другом массиве Objective-C?

Как я должен обрабатывать данные из контрольного списка? В настоящее время я обрабатываю его как NSMutableArray для выбранных объектов. Но как я могу отфильтровать первый массив с содержимым другого массива?

Должен ли я обрабатывать каждый элемент как NSString?

Спасибо за помощь!

+0

К сожалению. Я исправил ошибку в названии. Надеюсь, это устранит любую путаницу. – Jonah

ответ

1

Я предпочел бы использовать NSMutableDictionary вместо второго массива, связывая каждый объект (ключ) значение, которое сообщает мне, было ли оно выбрано или нет. Таким образом, проверка выбранных параметров будет быстрее, если я проведу первый массив (тот, который нужно отфильтровать).

1

Если ваши объекты реализуют isEquals: \ hash, вы можете использовать NSSet для хранения выбранных объектов. Затем вы можете выполнить поиск по набору, чтобы узнать, были ли они выбраны. Вы должны иметь возможность построить NSPredicate и фильтровать массив, используя это.

1

Если возможно, используйте NSMutableSets и просто используйте перекресток.

Удаляет из приемника каждый объект, который не является членом другого заданного набора.

- (void)intersectSet:(NSSet *)otherSet 

Вы можете создать наборы с:

  • (ID) setWithArray: (NSArray *) anArray