Должен ли API возвращать NULL для параметра int? + Как справитьсяIOS

Программируем под IOS
Anonymous
Должен ли API возвращать NULL для параметра int? + Как справиться

Сообщение Anonymous »

На данный момент наш API возвращает NULL для любых параметров int, которые не имеют значения.
например. В нашем пользовательском API один из наших параметров выглядит следующим образом:

Код: Выделить всё

{
...
"user_id":NULL
...
}
Я понимаю, что это не может быть 0, поскольку это может быть допустимым ответом, но наличие указателя NULL вызывает всевозможные проблемы, потому что int не могут быть NULL указателями.
Я думал, что эти значения следует вообще исключить - тогда они будут возвращать нулевые значения (в объективном с, например [словарь objectForKey:@"user_id"] == nil), что кажется более подходящим и не проверяет наличие нулевого указателя (что кажется неправильным, существует разница между int и указателем).
В противном случае можно было бы превратить его в объект NSNumber, который требует указатель и поэтому может иметь значение NULL. Тогда я могу сделать что-то вроде:

Код: Выделить всё

NSNumber *userID = [dictionary objectForKey:@"user_id"];
if(userID != [NSNull null]){
// its not null
}
Но мне кажется, что это в корне неверно, и в документации NSNumber говорится следующее:

Примечание. числовые объекты не обязательно сохраняют тип, в котором они созданы.

Это также заставляет меня чувствовать себя грязным.
(Опять же, я инициализирую NSDecimalNumber с помощью строки... так что я не знаю, почему меня это беспокоит...).


Подробнее здесь: https://stackoverflow.com/questions/134 ... -to-handle

Вернуться в «IOS»