搜索ABAddressBook时,如何在排除职位名称时搜索联系人姓名?

时间:2012-03-02 23:08:35

标签: iphone ios abaddressbook

当我在ABAddressBook搜索联系人姓名时,会返回包含职位名称的匹配项。

例如,假设我有一个名叫约翰史密斯的联系人,他是技术分析师。

如果我为ABAddressBook contain[cd]的名称搜索Te条目,我希望避免看到John的名字,因为Te不是“John Smith”的子字符串。

如何在排除职位名称时搜索ABAddressBook姓名?

1 个答案:

答案 0 :(得分:2)

过滤记录数组的谓词应该是这样的:

NSPredicate *predicate = [NSPredicate predicateWithFormat:
      @"record.name contains[cd] %@", string];

确保record.name仅包含

标识的元素
const ABPropertyID kABPersonFirstNameProperty;
const ABPropertyID kABPersonLastNameProperty;
const ABPropertyID kABPersonMiddleNameProperty;

而不是

const ABPropertyID kABPersonJobTitleProperty;