Nel mio modello di dati di base, ho un'entità con un attributo NSNumber facoltativo.Memorizzazione di NSNumber opzionale nei dati principali
Come si verifica se il valore in quell'attributo è valido o no?
Quando provo per nil ... non funziona.
[self numberAttribute] == nil // always returns NO
Quando provo per un valore zero int, non funziona.
[[self numberAttribute] intValue] == 0 // always returns no
È un dato di fatto, [[auto numberAttribute] intValue]] restituisce qualcosa che sembra sospetto, come un puntatore a un indirizzo di memoria.
Qualcuno ha idea di cosa sto facendo male?
MODIFICA: OK, il bug si trovava in una parte del codice completamente non correlata. NSNumber e Core Data funzionano esattamente come ci si aspetterebbe. Detto questo, ho intenzione di andare con l'approccio suggerito di rendere l'attributo non opzionale e specificando 0 come valore predefinito.
Basta mettere questa nota qui per un po 'per chiunque stia guardando questa domanda, quindi la sto eliminando.
Non ho ancora abbastanza ripetizioni da modificare, ma il tuo secondo esempio di codice ha parentesi non bilanciate (2 parentesi di apertura e 3 di chiusura). – Mark
Grazie mille. Fisso. – mmc
numeroAttributo è specificato come float nel modello dati? Come viene dichiarata la proprietà per numberAttribute? A cosa assomigliano le implementazioni accessorie (se non si sta utilizzando @dynamic accessors.) Senza queste informazioni, è impossibile rispondere con precisione alla domanda. –