2011-04-05 1 views
0

Cette question n'a jamais été posée auparavant, mais je ne trouve aucune réponse claire nulle part.Données de base - NSPredicate - Recherche des propriétés égales à 0 mais non nulles

J'ai des entités de données de base qui ont des attributs 'Integer 32' optionnels. J'essaie de configurer un prédicat pour récupérer tous les objets où cet attribut est égal à zéro mais n'est pas nul.

attributes.power == nil AND attributes.power == 0 

Cela ne fonctionne pas. Cela ne renvoie aucun résultat. La suppression de la première moitié du prédicat composé renvoie des zéros et des zéros.

Toute aide est grandement appréciée.

+0

J'ai décoché les opérateurs dans votre question, puisque sans la faute la réponse acceptée n'a aucun sens. – benzado

Répondre

8

Cela peut être une simple faute de frappe, mais je crois que vous voulez que le prédicat

attributes.power != nil AND attributes.power == 0 
+0

Oups, ouais, juste une faute de frappe dans ma question. Merci d'avoir attrapé ça. J'ai édité ma question. – dontGoPlastic

+0

Alors que ce n'était pas mon problème cette fois-ci (j'ai eu un moment total de tête osseuse ...), cela fonctionne comme prévu. Merci de poster^_^ – dontGoPlastic

+2

@dontGoPlastic, heureux que je pourrais vous aider en vous incitant à regarder le code à nouveau. J'appelle cette loi de Wark: Tout problème suffisamment complexe dans le développement de logiciels sera résolu par le demandeur immédiatement après avoir demandé de l'aide. –

-2

Pourquoi ne pas essayer d'utiliser en option « String » attributs à la place, puis les convertir en entiers.
Vous pouvez également utiliser un '-1' pour indiquer des valeurs non valides et le définir comme valeur par défaut de votre attribut.

+1

vous ne voulez probablement pas utiliser des chaînes pour stocker des entiers, même si c'est pratique d'avoir l'attribut facultatif. Je dirais que les bogues supplémentaires introduits par l'étape de conversion sont assez alarmants. – noobular

+0

Je suis d'accord sur le fait que les attributs String peuvent ne pas être une bonne solution ici. Les conversions si elles sont gérées correctement à l'aide d'une couche d'abstraction peuvent fournir un attribut facultatif pratique et flexible. Mais je suis toujours d'accord avec vous que vous pouvez l'éviter. –

Questions connexes