这是我目前的NSPredicate:
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"UPC==%@ OR ItemID==%@", aUPCCode,aUPCCode];
如何使此案例不敏感?
我不想做任何部分匹配。
示例如果他们为aUPCCode输入123我不想获得123,123a,123b,123c等。我只想要完全匹配。
我考虑过这样做,但似乎有点荒谬:
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"UPC==%@ OR ItemID==%@ OR UPC==%@ OR ItemID==%@ OR UPC==%@ OR ItemID==%@", aUPCCode,aUPCCode,[ aUPCCode lowercaseString] ,[aUPCCode lowercaseString], [aUPCCode uppercaseString],[aUPCCode uppercaseString]];
答案 0 :(得分:81)
正如Dave DeLong所说,你可以使用:
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"UPC ==[c] %@ OR ItemID ==[c] %@", aUPCCode,aUPCCode];
修改强>:
使用==[c]
代替==[cd]
,或者您也获得重音(abcd == àbcd
)。
答案 1 :(得分:2)
正如Sinetris所说,上述内容适用于Objective-C。
它适用于不区分大小写的情况。获取其中包含“example”字符串值的所有结果。
更新Swift 4.0
let predicateIsNumber = NSPredicate(format: "keywordContactNo contains[c] %@", example!)
希望有所帮助
由于
答案 2 :(得分:0)
也许这个:
[NSPredicate predicateWithFormat:@"UPC MATCHES[cd] %@ OR ItemID MATCHES[cd] %@",aUPCCode,aUPCCode];