Прежде всего, я признаюсь в своем невежестве, я узнал все, что знаю об Objective-C, за несколько месяцев работы над своим проектом.Я также нахожу это крайне разочаровывающим, как Objective-C, кажется, усложняет то, что было бы простым делом на любом другом языке, с которым я работал.Этот вопрос является наглядным примером ...
При первом запуске мое приложение загружает группу JSON, которую оно использует для заполнения хранилища CoreData.Я использую библиотеку Obj-C / JSON (CJSONDeserializer) для преобразования JSON в NSArrays.В загрузке JSON для одной сущности CoreData есть поле, содержащее число ("show_id":2
), идентифицирующее связанное поле в другой сущности, если оно есть, или ноль ("show_id":null
) в противном случае.При обработке этого поля я присваиваю его NSNumber, используя ...
NSNumber *shoIndex = [[item objectForKey:typeKey] objectForKey:@"show_id"];
Затем я пытаюсь проверить, что у меня есть действительный номер, прежде чем пытаться получить и связать соответствующую запись, чтобы не выполнять расточительную обработкугде нет связанной записи.
Опрос shoIndex
с ...
NSLog(@"shoIndex: %i, %@, %@", shoIndex, shoIndex, [shoIndex description]);
Дает ...
shoIndex: 19590600, <null>, <null>
, где значение JSON было null
& ...
shoIndex: 228300880, 51, 51
в противном случае.
Пока единственная успешная проверка, которую я сделал, была с ...
if (![[shoIndex description] isEqualToString:@"<null>"]) {
Может кто-нибудь предложитьлучший способ?
Обновить ...
Глядя на это по-другому, shoIndex
назначается как NSNumber
, который иногда содержит NSString
значение @"<null>"
.Есть ли в Obj-C что-то вроде оператора isa
, который я мог бы использовать для проверки типа содержимого shoIndex
?
TIA, Pedro.