Core Data NSPredicate NSNumber
Salut à tous,
Je rencontre un petit soucis avec un truc qui normalement devrait fonctionner. J'ai une classe Promotion avec un attribut "promotion_type" qui est de type NSNumber.
J'utilise Magical Record et je récupère un tableau vide quand je fais :
[Promotion MR_findAllWithPredicate:[NSPredicate predicateWithFormat:@promotion_type == %@", [NSNumber numberWithInteger:0]] inContext:aContext];
Alors que je récupère les objetcs que j'attends quand je fais :
[Promotion MR_findAllInContext:aContext];
C'est donc que mon NSPredicate n'est pas correct.
Pouvez-vous me dire ce que vous voyez d'incorrect ?
Salut.
Connectez-vous ou Inscrivez-vous pour répondre.
Réponses
Pour info, ma classe possède aussi un attribut de type NSString et lorsque je fais un predicate sur cette chaà®ne, ça ne fonctionne pas non plus :
Je commence à penser que c'est la première partie de mon predicate qui pose un soucis mais je ne vois pas encore où. Une idée ?
Hello,
Et si tu inspectes la base de données SQLite, est-ce que tu vois bien tes objets promotions ?
Essaie avec un seul "=" :
Je viens d'essayer avec un seul égal et ça ne fonctionne pas :
Je vais voir la base de données.
Je n'ai pas trouvé de fichier sqlite alors peut être que j'ai cherché dans le mauvais répertoire.
J'ai cherché dans :
~/Library/Developer/CoreSimulator/Devices/ [id du device]/data/containers/Data/application/[id de l'application]
C'est bien ça ?
Dans le appDelegate, j'ai fait :
Je préfère faire un LIKE dans des comparaisons avec des NSStrings... Potentiellement un LIKE[c] pour éviter un soucis de case-sensitive?
@promotion_type.intValue == %d, 0 renvoie bien ton résultat?
Je viens d'essayer avec @promotion_type.intValue == %d, mais ça ne fonctionne pas.
Je pense que l'erreur doit venir d'ailleurs mais je ne vois pas de où.
Les valeurs dans tes objets ne seraient-ils pas à nil ?
Merci à tous.
Effectivement les attributs de me objets étaient à nil.