不区分大小写的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!) 

希望能帮助到你

谢谢