Как проверить, не является ли значение в массиве NULL?

Поэтому я разбираю график времени. В ответе JSON есть поле «follow». Это должно быть правдой или ложью.

Но иногда поле отсутствует.

Когда я делаю:

NSLog(@"%@", [[[timeline objectAtIndex:i] objectForKey:@"user"] objectForKey:@"following"]); 

Это результат:

 1 1 0 0 1 <null> 1 1 

Итак, как проверить эти ценности?

NSArray и другие коллекции не могут принимать nil как значение, так как nil является «значением дозорного», когда заканчивается сбор. Вы можете найти, если объект имеет значение null, используя:

 if (myObject == [NSNull null]) { // do something because the object is null } 

Если поле отсутствует, NSDictionary -objectForKey: вернет нулевой указатель. Вы можете проверить нулевой указатель следующим образом:

 NSNumber *following = [[[timeline objectAtIndex:i] objectForKey:@"user"] objectForKey:@"following"]; if (following) { NSLog(@"%@", following); } else { // handle no following field NSLog(@"No following field"); } 

Элемент временной шкалы не равен нулю. Это либо «пользовательский» словарь, либо «следующий» объект, который является нулевым. Я рекомендую создать класс модели пользователя, чтобы инкапсулировать часть json / dictionary messiness. На самом деле, я уверен, вы можете найти API-интерфейс Twitter с открытым исходным кодом для iOS.

В любом случае, ваш код будет более читаемым, как что-то вроде:

 TwitterResponse *response = [[TwitterResponse alloc] initWithDictionary:[timeline objectAtIndex:i]]; NSLog(@"%@", response.user.following); 

TwitterResponse выше будет реализовывать свойство readonly TwitterUser *user которое, в свою очередь, будет выполнять NSNumber *following . Использование NSNumber поскольку оно допускает нулевые значения (пустые строки в ответе JSON).

Надеюсь, это поможет вам на правильном пути. Удачи!

для проверки массива, содержащего нулевое значение, используйте этот код.

 if ([array objectAtIndex:0] == [NSNull null]) { //do something } else { } 
Interesting Posts

iOS: Есть ли способ открыть защищенные паролем документы Microsoft Office?

Выпадающий фильтр Woocommerce не работает на iOS

UIBarButtonSystemItemPageCurl в бета-версии iOS 5

Пользовательский Swift NSNumberFormatterStyle

Красная точка (круг) рядом с именем приложения под значком приложения на главном экране iPhone на iOS 8

Странная проблема из-за изменения системных часов

socket.IO-objc против AZSocketIO

Как я могу определить, когда пользователь когда-либо видел диалог с запросом разрешения push-уведомлений (ios)

iOS 8.1 UITableview Цвет фона всегда белый

Почему мой UITableViewCells становится серым, когда я нажимаю на них?

Слияние словарей – Ошибка несовместимого типа

Как обрабатывать ошибки в NSPersistentContainer.loadPersistentStores?

Сколько блоков работает в очереди?

UICollectionView registerClass: метод forCellWithReuseIdentifier прерывает UICollectionView

Как правильно освободить память в iOS: память никогда не выпускается; потенциальная утечка памяти, на которую указывает

Давайте будем гением компьютера.