今天再次用到了模糊查询却发现一个问题:对一个对象数组NSArray
NSPredicate *predecate = [NSPredicate predicateWithFormat:@"name like[cd] '*%@*'",searchText];
却发现这个过滤结果始终为空,不管我使用
NSArray *temArray = [sectionArray filteredArrayUsingPredicate:predecate];
还是使用
if ([predecate evaluateWithObject:contactModel]) {
}
中间我改过使用
NSPredicate *predecate = [NSPredicate predicateWithFormat:@"name contains[cd] '*%@*'",searchText];
发现是可以的成功的。但是like就是不行。
我就把过滤条件给提出来了
NSString *predicateStr = [NSString stringWithFormat:@"name like[cd] '*%@*'",searchText];
NSPredicate *predecate = [NSPredicate predicateWithFormat:predicateStr];
结果成功了。。。
本文探讨了在使用NSPredicate进行模糊查询时遇到的问题。作者最初尝试使用namelike[cd]'*%@*'的格式但未能得到预期结果。通过调整为namecontains[cd]'*%@*'格式实现了成功过滤。最终发现将过滤条件直接设置为字符串格式可以解决问题。
1271

被折叠的 条评论
为什么被折叠?



