iOS: как проверить, равно ли значение «int» «nil» - PullRequest
8 голосов
/ 23 августа 2011

У меня есть значение int, определенное в одном из моих методов:

int value = [self someMethodThatGetsAnINT];

Позже у меня есть некоторые "если", которые проверяют это значение.

Как выразить: if (значение == ноль) ?

Когда я пытаюсь сделать этот интуитивно понятный код, я получаю предупреждение:

Семантическая проблема: Сравнение между указателем и целым числом ('int' и 'void *')

Ответы [ 3 ]

15 голосов
/ 23 августа 2011

nil это просто 0 :) Попробуйте это:

if (0 == value)

Однако, зачем вам тестировать nil против int - здесь что-то звучит забавно:)

4 голосов
/ 23 августа 2011

Если вы действительно хотите вернуть значение nil, вам, вероятно, следует использовать NSNumber в качестве типа возврата вместо int.NSNumber - это класс, который упаковывает скалярные значения в target-c.Вы можете поместить в него целое число, если у вас есть верное возвращаемое значение, или вернуть nil, если у вас нет.

0 голосов
/ 23 августа 2011

вы, вероятно, можете использовать if (value == (int)nil), но на самом деле функция, которая возвращает int, не должна возвращать nil, поскольку nil не является целым числом (хотя может быть представлено аналогично).

this может помочь немного прояснить

...