Ios 检查NSN号码
我想检查属性是否存在NSNumber,并排除变量为空、未定义、nil、NULL等情况 属性的定义如下: @属性(非原子,保留)NSNumber*id 我一直在使用以下工具:Ios 检查NSN号码,ios,objective-c,null,Ios,Objective C,Null,我想检查属性是否存在NSNumber,并排除变量为空、未定义、nil、NULL等情况 属性的定义如下: @属性(非原子,保留)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)检查它。这不是
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)一样进行检查,如果可以,为什么不呢
对于字符串,我通常检查字符串长度,但对于数字,我的理解是,长度属性不可用。您应该这样检查:
if (![item.id isKindOfClass:[NSNull class]])
如果检查值是否为零
if(item.id.floatValue != 0)
首先,您应该避免使用
id
作为属性名。例如,见
其次,objective-c有一个特性:它允许向
nil
实例发送消息。例如,item.id。如果item.id
为nil
,则无论什么都将始终返回nil
(您可以将其与0进行比较)。这意味着,您可以只检查属性的floatValue
:如果(item.id.floatValue!=0)
您到底在问什么?检查属性是否为nil
,如果不是,请检查其intValue、floatValue或其他内容。这不是双精度post。另一个回答问如何排除。我在很多地方都有这篇文章中的代码,我想检查它是否能检测出好的值。。。区别是微妙的——它可能会让一些人感到困惑,因为它显然让你感到困惑。如果(\u item.id!=nil&&[\u item.id intValue]!=0)
是另一个问题的建议解决方案,对于这个问题也是一样的。Iskindof类的用例是什么?如果NSNumber实际上是一个NSNull,那么您的代码应该会崩溃。如果您想将一个对象类与另一个对象类进行比较,可以使用它。对于用例,我可以说,如果你想检查一个对象是否继承了一个特定的类,你可以使用它。是的,但是NSNumber不继承NSNull,或者反过来说。因此在这里没有任何用处。当它没有初始化时,它是一个NSNull对象。去检查一下。不,那完全是错的。如果它没有初始化,那么它是nil
,它不是任何类的一种。好的,那么我把它作为我上面的代码,如果(item.id)不能正常工作?仅供参考,我的属性名称实际上是不同的。为了简单起见,我只使用了generic item.id。