2011-08-23 13 views
7

Ho un valore int definito in uno dei mio metodo:iOS: Come controllare se un valore "int" uguale a "zero"

int value = [auto someMethodThatGetsAnINT];

Successivamente ho alcuni "se" che controllano questo valore.

Come si esprime: if (value == nil)?

Quando provo fare questo la scrittura del codice intuitivo Ho ricevuto un avviso dicendo:

Problema semantico: Confronto tra puntatore e intero ('int' e 'void *')

risposta

14

nil è solo un 0 :) Prova questo:

if (0 == value) 

Tuttavia, perché saresti testando nil contro un int - qualcosa suona strano qui :)

0

è possibile utilizzare probabilmente if (value == (int)nil) ma in realtà una funzione che restituisce un valore int non dovrebbe restituire nulla poiché nil non è un numero intero (sebbene possa essere rappresentato allo stesso modo).

this può aiutare a chiarire in su un po

4

Se si vuole veramente un valore pari a zero restituito, si dovrebbe probabilmente essere utilizzando NSNumber come tipo di ritorno al posto di int. NSNumber è una classe che include valori scalari nell'obiettivo-c. Puoi inserire un numero intero quando hai un valore di ritorno valido o restituire zero quando non lo fai.

Problemi correlati