NSIntegers返回<nil>而不是0 </nil>

时间:2014-06-04 16:47:45

标签: cocoa-touch ios7

我的应用程序中有一个选择器,行0到5,因此定义了选择:

@property (assign) NSInteger pickerRowSelected;

启动时,我将pickerRowSelected指定为-1,这样我就可以确定用户实际上已经改变了一些东西。但是,这不起作用,我想就更好的解决方案提出一些建议。

我注意到的第一个问题是,如果用户选择第0行,则此代码失败:

if (self.pickerRowSelected >= 0) {

当我在gdb中[self pickerRowSelected]时,我得到了<nil>。对于百灵鸟,我这样做了:

if (self.pickerRowSelected == nil || self.pickerRowSelected >= 0) {

虽然编译器抱怨,但这很有效。但我认为在NSInteger中nil 为零,所以有人可以解释为什么if失败了吗?关于正确测试方法的建议?

1 个答案:

答案 0 :(得分:0)

问题出在其他地方。 nil等于0.因为你正在使用,你在GDB中获得nil po xyz 您需要使用非指针类型 p xyz

你能发布完整的代码吗?