Как я могу отфильтровать массив на основе объектов в другом массиве в Objective-C? - PullRequest
1 голос
/ 31 октября 2009

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

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

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

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

Ответы [ 3 ]

1 голос
/ 31 октября 2009

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

1 голос
/ 01 ноября 2009

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

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

- (void)intersectSet:(NSSet *)otherSet

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

  • (id) setWithArray: (NSArray *) anArray
1 голос
/ 31 октября 2009

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...