如何在公司记录中搜索联系人(地址簿) - Mountain Lion

时间:2013-01-14 21:58:08

标签: objective-c osx-mountain-lion addressbook

如何使用Objective-C搜索Mountain Lion中的联系人(也称为地址簿),以查找与当前人员记录具有相同公司名称的所有公司记录(即kABShowAsCompany)?例如,如果我有公司“Acme Corp”的人员记录,我想找到所有公司记录,名称为“Acme Corp”。

我需要返回NSArray条记录kABShowAsCompanykABOrganizationProperty等于当前记录kABOrganizationProperty的记录。

感谢您的帮助。

1 个答案:

答案 0 :(得分:1)

NSString* acmeCorpCompanyName = @"Acme Corp" ;

ABAddressBook* addressBook = [ABAddressBook sharedAddressBook] ;
ABSearchElement* isACompany = [ABPerson searchElementForProperty:kABPersonFlags  label:nil  key:nil  value:@(kABShowAsCompany)  comparison:kABEqual ] ;
ABSearchElement* nameIsAcmeCorp = [ABPerson searchElementForProperty:kABOrganizationProperty  label:nil  key:nil  value:acmeCorpCompanyName  comparison:kABEqualCaseInsensitive ] ;
ABSearchElement* isACompanyNamedAcmeCorp = [ABSearchElement searchElementForConjunction:kABSearchAnd  children:@[isACompany, nameIsAcmeCorp] ] ;
NSArray* foundCompanies = [addressBook recordsMatchingSearchElement:isACompanyNamedAcmeCorp] ;