我正在寻找一种方法来NSPredicate
设置LIKE
条件以获取对象。除此之外, anOR
也很有用。我正在尝试做一些事情,如果用户搜索“James”,我可以编写一个NSPredicate
相当于:
select * from users where firstname LIKE '%James%' OR lastname LIKE '%James%';
我正在寻找一种方法来NSPredicate
设置LIKE
条件以获取对象。除此之外, anOR
也很有用。我正在尝试做一些事情,如果用户搜索“James”,我可以编写一个NSPredicate
相当于:
select * from users where firstname LIKE '%James%' OR lastname LIKE '%James%';
NSString *_mySearchKey = @"James";
NSPredicate *_myPredicate = [NSPredicate predicateWithFormat:@"(firstname CONTAINS[cd] %@) OR (lastname CONTAINS[cd] %@)", _mySearchKey, _mySearchKey];
操作员肯定会工作得CONTAINS
很好。如果您正在寻找更直接的相关性,那么您还可以使用 LIKE 运算符(*
= 0 或更多字符,?
= 1 字符):
NSString *_mySearchKey = @"James";
NSPredicate *_myPredicate = [NSPredicate predicateWithFormat:@"firstname LIKE '*%1$@*' OR lastname LIKE '*%1$@*'", _mySearchKey];
另一种可能
@"firstname beginswith[c] James"
作为包含的一个不错的选择
有时包含并不总是正确的答案