2010-08-11 6 views
2

J'ai un ENUM typedef j'utiliser pour représenter un état d'un emploi dans un système de mise en attente et il est défini commeComment stocker un ENUM typedef dans CoreData

typedef enum { 
kTWjobStateRunning, 
kTWjobStateQueued, 
kTWjobStateError 
}TWjobState; 

Tout va bien, mais maintenant je voudrais pour le stocker en tant qu'attribut dans CoreData. Ma première idée est qu'une énumération est fondamentalement un nombre entier, de sorte qu'emballerait le TWjobState dans un travail NSNumber? Dois-je utiliser des conversions pour persuader le compilateur?

Les meilleures pratiques question
j'ai vu cette utilisation de énumérations souvent dans les classes de cacao et la Fondation ainsi que l'utilisation de bitmasks. Existe-t-il un moyen plus moderne et plus orienté objet pour atteindre la même chose?

Merci pour votre aide.

+0

[Cette question] (http://stackoverflow.com/questions/1624297/best-way-to-implement-enums-with-core-data) contient une réponse plus élaborée au même problème. – Palimondo

Répondre

9

Le stockage d'énumérations dans un NSNumber est la méthode correcte pour cela.

+4

Bien que cela nécessitera une mise à jour si vous modifiez le 'enum' et si vous utilisez des valeurs séquentielles dans l'énumération, vous pouvez utiliser le système de validation de CoreData pour définir les limites supérieure et inférieure correspondant aux valeurs enum/min. –

+0

merci barry pour le commentaire. – GorillaPatch