2013-07-05 3 views
0

У меня есть массив контактов. Эти контакты имеют NSSet объектов Phone, и каждый телефонный объект имеет строку numberNumber. Я хочу показать все эти контакты, но я не хочу, чтобы контакты с повторяющимися номерами отображались. Теперь проблема заключается в том, что некоторые контакты имеют повторяющиеся номера, но могут также иметь дополнительный номер. Другими словами, у одного пользователя может быть 555-555-5555, а у другого может быть 555-555-5555 плюс 666-666-6666. Как добавить только контакт с двумя номерами в новый массив контактов? Есть ли способ фильтровать массив с помощью NSPredicate или любым другим элегантным способом или мне нужно просто использовать кучу циклов?Как я могу отфильтровать этот массив, чтобы исключить дубликаты свойств?

Я знаю, что могу просто поместить номера телефонов в NSSet, но также хочу иметь возможность отображать имя контакта, которое находится в объекте Contact.

Проще говоря, я хочу иметь возможность отфильтровывать любые подмножества или просто принимать самый большой набор, содержащий этот телефон.

ответ

0

Вы должны быть в состоянии сделать что-то вроде этого: https://stackoverflow.com/a/7491851/1009087.

Итерация по массиву всех контактов, добавление значений в NSMutableSet. Если значение уже существует в наборе, удалите его из своего массива контактов.

Вы должны перебирать весь список контактов, но каждый шаг - постоянное время. Просто укажите свой идентификатор как комбинацию свойств, которые делают каждый контакт уникальным, имя и номер телефона.

Смежные вопросы