Проблема синтаксиса Objective C, связанная с неправильным получением параметром правильных данных

#ios #objective-c

#iOS #objective-c

Вопрос:

Я работал над проектом, реализующим Hola CDN framework. Теперь я столкнулся с проблемой, из-за которой я не могу передать текущую дату параметру programmday, и я отследил исходный код и нашел строку ниже. Что означает эта строка ниже?

 self.programDay = ![dict[GETPROGRAMLISTDATA_PROGRAMEDAY] isEqual:[NSNull null]] ? dict[GETPROGRAMLISTDATA_PROGRAMEDAY] : nil;
  

Ответ №1:

Что такое NSNull
[NSNull null] не равно nil . Это означает пустое значение. Например, @[[NSNull null]].count равно 1. NSNull используется в качестве заполнителя в NSArray и NSDictionary . Это означает ноль.
На ваш вопрос
Эта строка используется для замены NSNull на nil .

Комментарии:

1. Я не думаю, что понимаю. Не могли бы вы, пожалуйста, попытаться связать с dict[GETPROGRAMMLISTDATA_PROGRAMEDAY] ? Возможно, это помогло бы мне понять. Спасибо.

2. @SanitLee обновил мой ответ.

Ответ №2:

 self.programDay = ![dict[GETPROGRAMLISTDATA_PROGRAMEDAY] isEqual:[NSNull null]] ? dict[GETPROGRAMLISTDATA_PROGRAMEDAY] : nil;
  

Эта строка означает, что если [dict[GETPROGRAMLISTDATA_PROGRAMEDAY] имеет пустое значение или значение null, то nil будет присвоен self.programDay , поскольку будет [dict[GETPROGRAMLISTDATA_PROGRAMEDAY] присвоено значение self.programDay . Обычно (нулевое) значение возвращается из веб-сервиса, если это значение не представлено в базе данных на сервере.