核心数据NSPredicate中LIKE [c]%@和= [c]%@之间的确切区别是什么?我想搜索一个与接收器完全匹配的字符串.
示例:
示例:
NSArray *arrayNames = [context fetchObjectsForEntityName:NSStringFromClass([PatientFamilyMember class]) withSortColumn:nil withSortDescending:FALSE withPredicate:@"patientID = %@ && firstName=[c]%@ && relationship=[c]%@ && lastName=[c]%@",self.pfm.patientID,firstName,relationship,lastName];
这有效但我还没有理解使用LIKE [c]和= [c]%@之间的区别.
解决方法
谓词中LIKE和=之间的区别是LIKE允许的?和*作为通配符,在哪里?匹配1个字符,*匹配0个或更多个字符.
可以使用[c]修改LIKE和=以指定不区分大小写.
示例:假设您有包含名称的对象
"Mark","mark","Mike","mike","M*"
都
[NSPredicate predicateWithFormat:@"name = %@",@"Mark"]; [NSPredicate predicateWithFormat:@"name LIKE %@",@"Mark"];
找到“马克”,两者兼而有之
[NSPredicate predicateWithFormat:@"name =[c] %@",@"Mark"]; [NSPredicate predicateWithFormat:@"name LIKE[c] %@",@"Mark"];
找到“马克”和“马克”.但只有LIKE运算符可以与通配符一起使用,例如
[NSPredicate predicateWithFormat:@"name LIKE[c] %@",@"M*"];
找到“Mark”,“mark”,“Mike”,“mike”和“M *”,但是
[NSPredicate predicateWithFormat:@"name ==[c] %@",@"M*"];
只找到“M *”.
有关详细信息,请参阅“谓词编程指南”中的String Comparisons.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。