通过Cocoa复杂地使用地址簿搜索元素



我正在尝试使用ABPerson方法searchElementForProperty:...创建一个中等复杂的搜索。 特别是,我想找到一组电子邮件地址以" foo.com "结尾的人,并且不属于预填充的组" My workunit"。

仅与电子邮件地址匹配似乎微不足道。 创建针对(相反的)组成员身份的联合似乎是不可能的。

是的,我可以通过自己进行明显的显式交叉检查来做到这一点,但是如果直接在地址簿中具有搜索功能的目的是优化性能,那么搜索工具足够完整以能够做到这一点是否有意义?

提前感谢,托尼

您可以将通讯簿中的所有数据复制到核心数据存储中,并使用谓词来处理该数据。在构建复杂查询时,谓词往往非常有用。

谓词编程指南

在这种情况下,您必须获取所有联系人([[AddressBook sharedAddressBook] people]),并且还必须具有一个名为Contact(或类似内容)的核心数据实体,该实体将保存ABPerson对象中的姓名,电子邮件,地址和其他属性。

有了这个,您可能可以创建一个NSPredicate来使用所需的条件进行过滤。

组根据 recordId 引用其成员。 我发现执行此类操作的唯一方法是:如何找到一个人的父组。 这不是我们希望的一件简单的事情。 苹果似乎并不关心组搜索,这将非常有用。

最新更新