Voici mon NSPredicate actuel:
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"UPC==%@ OR ItemID==%@", aUPCCode,aUPCCode];
Comment puis-je rendre ce cas insensible?
Et je ne veux pas faire de correspondance partielle.
Exemple si ils entrent 123 pour aUPCCode Je ne veux pas obtenir 123, 123a, 123b, 123c, ect. Je voudrais seulement une correspondance exacte.
J'ai pensé faire cela mais cela semble un peu ridicule:
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]];
Comme Dave DeLong l'a dit, vous pouvez utiliser:
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"UPC ==[c] %@ OR ItemID ==[c] %@", aUPCCode,aUPCCode];
Modifier :
Utilisez ==[c]
au lieu de ==[cd]
ou vous obtenez aussi des accents (abcd == àbcd
).
Comme Sinetris l'a dit, ce qui précède fonctionne en Objective-C.
Cela fonctionne pour la casse. Récupère tous les résultats contenant la chaîne "exemple".
Mise à jour de Swift 4.0
let predicateIsNumber = NSPredicate(format: "keywordContactNo contains[c] %@", example!)
J'espère que ça aide
Merci
peut être ça:
[NSPredicate predicateWithFormat:@"UPC MATCHES[cd] %@ OR ItemID MATCHES[cd] %@",aUPCCode,aUPCCode];