2011-08-23 16 views
7

Mam wartość int zdefiniowany w jednym z mojej metody:iOS: Jak sprawdzić, jeśli "int" wartość wynosi "zero"

int value = [self someMethodThatGetsAnINT];

Później mam "ifs", które sprawdzają tę wartość.

Jak mogę wyrazić: jeśli (wartość == zero)?

Kiedy próbuję to zrobić intuicyjne pisanie kodu otrzymuję ostrzeżenie mówiąc:

semantyczna Problem: Porównanie wskaźnika i liczby całkowitej ('int' i 'void *')

Odpowiedz

14

nil jest tylko 0 :) Spróbuj tego:

if (0 == value) 

jednak dlaczego można byłoby testowanie nil przeciwko int - coś tu brzmi śmiesznie :)

0

prawdopodobnie można użyć if (value == (int)nil), ale tak naprawdę funkcja, która zwraca int nie powinna zwracać zero, ponieważ zero nie jest liczbą całkowitą (chociaż może być reprezentowana podobnie).

this mogą pomóc jasne, to się trochę

4

Jeśli naprawdę chcesz, to jest wartość zerowa wrócił, powinieneś używać NSNumber jako typ zwracany zamiast int. NSNumber jest klasą, która opakowuje wartości skalarne w cel-c. Możesz umieścić w nim liczbę całkowitą, gdy masz prawidłową wartość zwracaną, lub wracasz do zera, gdy tego nie robisz.

Powiązane problemy