Jako alternatywne podejście do Akceptowane odpowiedź, można po prostu zmienić wpisując z NSNumber * do bool w zarządzanym ubterfejsu obiektów, takich jak:
@property (nonatomic) BOOL useGPS; // Notice that the 'retain' is also removed as we're now dealing with a scalar rather than an NSObject
różne alternatywne podejścia są omówione here, ale Chris Hanson „s odpowiedź była najbardziej pouczające dla mnie , w szczególności:
Jeśli masz atrybut numeryczny (włączając atrybut Boolean), który jest wymagane, wystarczy wpisać go jako skalara zamiast i Core danych zrobi uszne:
@property (nonatomic) BOOL isDone;
Nawet jeśli atrybut jest opcjonalny, , który będzie nadal działał - będzie po prostu połączyć "nieobecny" z "fałszem".
i bardziej wyrównany realizacji kakao:
Jedną rzeczą może chcesz zrobić to nazwać właściwość „Gotowe” i po prostu określić jako getter „isDone”. To jest zwykła konwencja nazewnictwa Cocoa:
@property (nonatomic, getter = isDone) BOOL done;
Następnie można wpisać "if (item.done) { ...}" lub "element.zrobione = NO;”i kompilator wygeneruje -isDone dla dostępów majątku
Dzięki Chris i mam nadzieję, że to pomoże komuś
Wyjazd NSNumber –