2010-01-24 4 views
4

J'ai créé un attribut BOOL dans mon entité Core Data appelée "useSystem". De plus, pour que je puisse obtenir/définir les données, j'ai créé un objet, mais chaque fois que j'essaie de définir le BOOL synthétisé, j'obtiens une erreur de bus. Ceci est mon code:Synthétiser un BOOL pour définir la valeur dans Objective C

@property (nonatomic) const BOOL useSystem; 

Je fais

[object setUseSystem:YES]; 

Et immédiatement je reçois l'erreur de bus. Quelqu'un peut-il aider?

Répondre

6

Utilisez [NSNumber numberWithBool:YES]

+1

et [[Entity isBool] boolValue] pour le lire. – RickiG

1

Il est probablement préférable d'utiliser le style NSNumber comme type de propriété en fait. C'est également ce qui se passe lorsque vous utilisez l'éditeur de modèle dans xcode pour ajouter un attribut booléen à une entité. Il y a 'auto-boxing' qui se passe mais je semble toujours avoir moins de problèmes quand j'utilise simplement les types Objective-C de plus haut niveau et les wrappers comme NSNumber.

0

Cela devrait fonctionner si vous déclarez la méthode explicitement, mais cela peut ne pas fonctionner avec @synthesize. On dirait que j'ai déjà fait ça, mais peut-être que je viens d'utiliser le BOOL sans méthode de mutateur. (Vous pouvez utiliser @property sans @synthesize si vous définissez la (les) méthode (s) que @property déclare.)