我想检查属性是否存在NSNumber,并排除变量为空,未定义,nil,NULL等的任何情况。
属性定义如下:
@property(nonatomic,retain)NSNumber * id;
我一直在使用以下内容:
if (item.id) {
//has a valid id such as 1,2,3,4
}
else {
//does not have a valid id.. could be 0, nil, NULL etc.
}
我这样做了吗?
注意,我知道可以使用([item.id intValue]!= 0)进行检查。那不是我的问题。我的问题是,是否也可以检查(item.id),如果是,为什么不呢?
对于字符串,我通常检查字符串长度,但对于数字,我的理解是,长度属性不可用。
答案 0 :(得分:2)
首先,您应该避免使用id
作为属性名称。例如,请参阅here。
其次,objective-c有一个功能:它允许向nil
个实例发送消息。例如。如果item.id.whatever
为nil
,item.id
将始终返回nil
(您可以将其与0进行比较)。这意味着,您只需检查该属性的floatValue
:if (item.id.floatValue != 0)
。
答案 1 :(得分:-1)
你应该这样检查:
+
如果检查值为零
if (![item.id isKindOfClass:[NSNull class]])