检查NSNumber

时间:2016-01-17 13:58:56

标签: ios objective-c null

我想检查属性是否存在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),如果是,为什么不呢?

对于字符串,我通常检查字符串长度,但对于数字,我的理解是,长度属性不可用。

2 个答案:

答案 0 :(得分:2)

首先,您应该避免使用id作为属性名称。例如,请参阅here

其次,objective-c有一个功能:它允许向nil个实例发送消息。例如。如果item.id.whatevernilitem.id将始终返回nil(您可以将其与0进行比较)。这意味着,您只需检查该属性的floatValueif (item.id.floatValue != 0)

答案 1 :(得分:-1)

你应该这样检查:

+

如果检查值为零

  if (![item.id isKindOfClass:[NSNull class]])