Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/98.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 检查NSN号码_Ios_Objective C_Null - Fatal编程技术网

Ios 检查NSN号码

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)检查它。这不是

我想检查属性是否存在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)检查它。这不是我的问题。我的问题是,是否也可以像(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。