【问题标题】:How to search Contacts (address book) for company records - Mountain Lion如何在联系人(通讯录)中搜索公司记录 - Mountain Lion
【发布时间】:2012-12-28 22:44:28
【问题描述】:

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

我需要返回NSArray 的记录,其中标志kABShowAsCompanykABOrganizationProperty 等于当前记录的kABOrganizationProperty

感谢您的帮助。

【问题讨论】:

  • 我删除了你最后提到的另一个问题。就像你说的那样,一旦你解决了这个问题,你就可以提出一个单独的问题。

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


【解决方案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] ;

【讨论】:

  • 太完美了。谢谢你。我快到了,但不知道如何处理搜索中的人员标志。现在我愿意!再次感谢。
猜你喜欢
  • 1970-01-01
  • 2023-03-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-01-20
相关资源
最近更新 更多