我在一个方法中定义了一个int值:
int value = [self someMethodThatGetsAnINT];
稍后,我有一些“if”语句用来检查这个值。
如何表达:if (value == nil)?
当我尝试编写这个直观的代码时,我会收到一个警告,说:
语义问题:指针和整数之间的比较('int'和'void *')
我在一个方法中定义了一个int值:
int value = [self someMethodThatGetsAnINT];
稍后,我有一些“if”语句用来检查这个值。
如何表达:if (value == nil)?
当我尝试编写这个直观的代码时,我会收到一个警告,说:
语义问题:指针和整数之间的比较('int'和'void *')
nil
就是一个0
:) 尝试一下:
if (0 == value)
然而,为什么你要将 nil
测试与 int 进行比较 - 这里听起来有些不对劲 :)
如果你真的希望返回一个空值,你应该使用NSNumber作为返回类型,而不是int。NSNumber是Objective-C中封装标量值的类。当你有一个有效的返回值时,你可以将整数放入其中,或者在没有返回值时返回空值。
你可能可以使用if (value == (int)nil)
,但实际上返回 int 的函数不应该返回 nil,因为 nil 不是整数(尽管它可能以类似的方式表示)。
this 可能会有所帮助,稍微澄清一下。