NSPredicate contient une chaîne en minuscules
Je suis le développement d'une application iOS avec iOS SDK 6.0 et XCode 4.5.2. Mon objectif de développement est de 4,3.
Je suis à l'aide de Données de Base pour gérer mes données. Maintenant, j'ai ce NSPredicate
à la recherche de souvenirs:
if ((shopSearchBar.text != nil) && ([shopSearchBar.text length] > 0))
{
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"name = %@",shopSearchBar.text];
[fetchRequest setPredicate:predicate];
}
C'est la Boutique de l'entité:
- Je convertir nom minuscules et voir si elle contient shopSearchBar.text
en minuscules format.
Exemple:
J'ai ces quatre magasins:
- Shop1
- boutique 1
- ma boutique
- Boutique
Si l'utilisateur recherche le texte est "boutique", il y retourne tous les d'entre eux.
Savez-vous comment faire?
source d'informationauteur VansFannel
Vous devez vous connecter pour publier un commentaire.
C'est comment je l'ai résolu mon problème:
(a) Vous pouvez ajouter une colonne à votre dépôt - lowercaseName - et chaque fois que vous enregistrez un Magasin, d'enregistrer une minuscule seule version de ce nom. Ensuite, votre prédicat est juste de comparer 🙂
(b) Toutefois, si vous souhaitez faire un casse comparez essayez ceci :
C'est aussi diacritique insensible à comparer. Regarder la Chaîne de Comparaison de la section de cette page docs pour plus d'options.
(a) vous donne des requêtes plus rapides mais plus compliqué code.
(b) vous donne très simple d'économiser de méthodes mais (un peu) plus lent requêtes
Vous devriez être en mesure d'utiliser NSPredicat de predicateWithBlock: méthode: