我的应用程序中有一个选择器,行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
失败了吗?关于正确测试方法的建议?
答案 0 :(得分:0)
问题出在其他地方。 nil等于0.因为你正在使用,你在GDB中获得nil po xyz 您需要使用非指针类型 p xyz
你能发布完整的代码吗?