Должен ли 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
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

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