如何使用Objective-C搜索Mountain Lion中的联系人(也称为地址簿),以查找与当前人员记录具有相同公司名称的所有公司记录(即kABShowAsCompany
)?例如,如果我有公司“Acme Corp”的人员记录,我想找到所有公司记录,名称为“Acme Corp”。
我需要返回NSArray
条记录kABShowAsCompany
和kABOrganizationProperty
等于当前记录kABOrganizationProperty
的记录。
感谢您的帮助。
答案 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] ;