Prima di tutto Confesso la mia ignoranza, ho imparato tutto ciò che so su Objective-C nei pochi mesi in cui ho lavorato al mio progetto. Trovo anche estremamente frustrante il modo in cui Objective-C sembra complicare ciò che sarebbe semplice in qualsiasi altra lingua con cui ho lavorato. Questa domanda è un caso in questione ...Come verificare il valore nullo in NSNumber
Nella prima esecuzione la mia app scarica un gruppo di JSON che utilizza per compilare un negozio CoreData. Io uso una libreria Obj-C/JSON (CJSONDeserializer) per convertire il JSON in NSArrays. Nel download JSON per un'entità CoreData è presente un campo contenente un numero ("show_id":2
) che identifica il campo correlato in un'altra entità se esiste uno o null ("show_id":null
) in caso contrario. Nel trattamento quel campo assegno a un NSNumber utilizzando ...
NSNumber *shoIndex = [[item objectForKey:typeKey] objectForKey:@"show_id"];
Allora provo a controllare che ho un numero valido prima di tentare di recuperare & link record correlato in modo da non fare l'elaborazione sprechi dove ci non è un record correlato.
Interrogazione shoIndex
con ...
NSLog(@"shoIndex: %i, %@, %@", shoIndex, shoIndex, [shoIndex description]);
Dà ...
shoIndex: 19590600, <null>, <null>
in cui il valore JSON era null
& ...
shoIndex: 228300880, 51, 51
altrimenti.
Finora l'unico controllo di successo che ho fatto è con ...
if (![[shoIndex description] isEqualToString:@"<null>"]) {
Qualcuno può suggerire un modo migliore?
Aggiornamento ...
Guardando un altro modo shoIndex
viene assegnato come NSNumber
che a volte contiene un valore @"<null>"
NSString
. Obj-C ha qualcosa come un operatore isa
che potrei usare per verificare il tipo di contenuto di shoIndex
?
TIA, Pedro.
Cosa ti fa pensare che l'oggetto è un'istanza di 'NSNumber'? – jlehr