当我在ABAddressBook
搜索联系人姓名时,会返回包含职位名称的匹配项。
例如,假设我有一个名叫约翰史密斯的联系人,他是技术分析师。
如果我为ABAddressBook
contain[cd]
的名称搜索Te
条目,我希望避免看到John的名字,因为Te不是“John Smith”的子字符串。
如何在排除职位名称时搜索ABAddressBook
姓名?
答案 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;