【发布时间】:2011-08-23 11:15:19
【问题描述】:
我在我的一种方法中定义了一个 int 值:
int 值 = [self someMethodThatGetsAnINT];
稍后我有一些“ifs”来检查这个值。
我该如何表达:if (value == nil)?
当我尝试编写这种直观的代码时,我收到一条警告:
语义问题:指针和整数之间的比较('int' 和 'void *')
【问题讨论】:
标签: ios if-statement int null
我在我的一种方法中定义了一个 int 值:
int 值 = [self someMethodThatGetsAnINT];
稍后我有一些“ifs”来检查这个值。
我该如何表达:if (value == nil)?
当我尝试编写这种直观的代码时,我收到一条警告:
语义问题:指针和整数之间的比较('int' 和 'void *')
【问题讨论】:
标签: ios if-statement int null
nil 只是一个0 :) 试试这个:
if (0 == value)
但是,您为什么要针对 int 测试 nil - 这听起来很有趣 :)
【讨论】:
如果你真的想返回一个 nil 值,你可能应该使用 NSNumber 作为你的返回类型而不是 int。 NSNumber 是一个在objective-c 中包装标量值的类。当你有一个有效的返回值时,你可以在其中放入一个整数,或者当你没有时返回 nil。
【讨论】:
您可能可以使用if (value == (int)nil),但实际上返回 int 的函数不应返回 nil,因为 nil 不是整数(尽管它可能以类似方式表示)。
this 可能有助于澄清一点
【讨论】: