2012-06-06 5 views
2

Я пытаюсь использовать метод ABPersonsearchElementForProperty:..., чтобы создать умеренно сложный поиск. В частности, я хочу найти набор людей, у которых есть адрес электронной почты, который заканчивается на «foo.com», и НЕ являются частью предварительно заполненной группы «My workunit».Сложное использование элементов поиска адресной книги через Cocoa

Соответствие только адреса электронной почты кажется тривиальным. Создание конъюнкции против членства в группе (обратная к группе) кажется невозможным.

Да, я могу сделать это, сделав очевидную явную перекрестную проверку себя, но если точка поиска функции непосредственно в адресной книге - это оптимизация производительности, не имеет ли смысл, чтобы объект поиска был достаточно полный, чтобы иметь возможность сделать это?

Спасибо заранее, Tony

ответ

1

Вы могли бы потенциально скопировать все данные из адресной книги в магазин и использование основных данных, предикаты для работы с этими данными. Предикаты, как правило, очень полезны при построении сложных запросов.

Predicate Programming Guide

В этом случае вы должны получить все контакты ([[AddressBook sharedAddressBook] people]), а также есть сущность основных данных называется Contact (или нечто подобное), которые будут сохранять имена, электронные письма, адрес и другие свойства из ABPerson объект.

Имея это возможно, вы можете создать NSPredicate для фильтрации с условиями, которые вы хотите.

0

Группы ссылаются на своих членов в соответствии с записью. Единственный способ, который я нашел для выполнения такой операции, - это: how to find parent groups of a person. Это не простая вещь, как хотелось бы. Похоже, что Apple не заботится о групповом поиске, что было бы чрезвычайно полезно.

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

  • Нет связанных вопросов^_^