2011-08-23 5 views
7

tengo un valor entero definido en una de mi método:iOS: Cómo comprobar si un valor "int" es igual a "cero"

int value = [auto someMethodThatGetsAnINT];

Más tarde tengo algunos "si" que controlan este valor.

Cómo expresar: if (value == nil)?

Cuando intento hacer esto escritura de código intuitiva recibo una advertencia diciendo:

cuestión semántica: Comparación entre el puntero y entero ('int' y 'void *')

Respuesta

14

nil es sólo una 0 :) Prueba esto:

if (0 == value) 

Sin embargo, ¿por qué estar probando nil contra un int - algo que suena divertido aquí :)

0

probablemente pueda usar if (value == (int)nil) pero realmente una función que devuelve un int no debe devolver nil ya que nil no es un número entero (aunque puede representarse de manera similar).

this puede ayudar a aclarar encima de un poco

4

Si realmente desea un valor nulo devuelto, probablemente debería estar utilizando NSNumber como su tipo de retorno en lugar de int. NSNumber es una clase que ajusta los valores escalares en Object-C. Puede poner un número entero cuando tenga un valor de retorno válido o devolver cero cuando no lo haga.

Cuestiones relacionadas