在我的应用程序中,我使用NSPredicate
来过滤填充了来自iPhone的地址簿的数据的数组。
对于数组中的每个人,我得到firstName
,lastName
,email
和nickName
,
然后我根据搜索字符串
我为searchString
创建了一个谓词,但由于某些原因,我无法弄明白,我的应用程序崩溃了。
我是Predicates的新手并且无法弄清楚,我哪里出错了,我的代码与'contains'而不是'beginwith'一起正常工作?
以下是崩溃我的应用的代码段
NSPredicate *filterPredicate = [NSPredicate predicateWithFormat:
@"(firstName beginswith[cd] %@) OR (lastName beginswith[cd] %@) OR (nickName beginswith[cd] %@) OR (email beginswith[cd] %@)",
searchTextComponent,searchTextComponent,searchTextComponent];
答案 0 :(得分:0)
您有4个“%@”且只有3个参数。
NSPredicate *filterPredicate = [NSPredicate predicateWithFormat:
@"(firstName beginswith[cd] %@) OR (lastName beginswith[cd] %@) OR (nickName beginswith[cd] %@) OR (email beginswith[cd] %@)",
searchTextComponent,searchTextComponent,searchTextComponent, SEARCHTEXTCOMPONENT ONE MORE TIME];