不区分大小写的NSPredicate,在CoreData中单个结果
这是我现在的NSPredicate:
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"UPC==%@ OR ItemID==%@", aUPCCode,aUPCCode];
我如何使这种情况下不敏感?
我不想做任何部分匹配。
例如,如果他们input123为aUPCCode我不想得到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]];
正如Dave DeLong所说,你可以使用:
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"UPC ==[c] %@ OR ItemID ==[c] %@", aUPCCode,aUPCCode];
编辑 :
使用==[c]
代替==[cd]
或者你也可以使用口音( abcd == àbcd
)。
也许这个:
[NSPredicate predicateWithFormat:@"UPC MATCHES[cd] %@ OR ItemID MATCHES[cd] %@",aUPCCode,aUPCCode];
正如Sinetris所说,上述工作在Objective-C中。
它适用于不区分大小写。 获取所有具有“示例”string值的结果。
更新Swift 4.0
let predicateIsNumber = NSPredicate(format: "keywordContactNo contains[c] %@", example!)
希望能帮助到你
谢谢