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

标签 macos cocoa addressbook abaddressbook abperson

我正在尝试使用 ABPerson方法searchElementForProperty:...创建适度复杂的搜索。特别是,我想查找电子邮件地址以“foo.com ”结尾且不属于预填充组“My workunit ”的人员。

仅匹配电子邮件地址似乎很简单。创建针对组成员身份(的反面)的合取似乎是不可能的。

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

提前致谢, 托尼

最佳答案

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

Predicate Programming Guide

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

有了这个,您可能可以创建一个 NSPredicate 来根据您想要的条件进行过滤。

关于macos - 通过 Cocoa 复杂地使用地址簿搜索元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10910705/

相关文章:

macos - TOpenDialog/NSOpenPanel 无法在沙盒 Delphi 应用程序中工作

objective-c - NSTabView 与 NSTabViewController ——何时使用 Controller ?

cocoa - 如何动态调整 NSMenu 的大小以适应其内容?

cocoa - 处理 Swift 3 中 (NS)URLSession 的 cocoa 错误

iphone - 如何显示 CFStringType?喜欢 kABHomeLabel

iphone - 是否可以通过编程方式将 iPhone 联系人添加到手机收藏夹中?

Xcode无法使用所选目标运行

objective-c - 初始化 NSTableView

facebook - 需要帮助 : google, yahoo, hotmail contacts api

macos - 如何使用 OSX 在 AMD GPU 上获取 OpenCL 内核的汇编代码