Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/26.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 在目标C中标识空值_Ios_Objective C - Fatal编程技术网

Ios 在目标C中标识空值

Ios 在目标C中标识空值,ios,objective-c,Ios,Objective C,我知道我们可以使用nil来验证目标c中的空值。我一直在尝试使用它,但每次程序都会崩溃 这是我在服务中得到的回应 2013-12-16 12:45:32.867 Pizza to Go[1857:a0b] 0 2013-12-16 12:45:32.868 Pizza to Go[1857:a0b] <null> 2013-12-16 12:45:32.868 Pizza to Go[1857:a0b] <null> 2013-12-16 12:45:32.868 Pizz

我知道我们可以使用nil来验证目标c中的空值。我一直在尝试使用它,但每次程序都会崩溃

这是我在服务中得到的回应

2013-12-16 12:45:32.867 Pizza to Go[1857:a0b] 0
2013-12-16 12:45:32.868 Pizza to Go[1857:a0b] <null>
2013-12-16 12:45:32.868 Pizza to Go[1857:a0b] <null>
2013-12-16 12:45:32.868 Pizza to Go[1857:a0b] <null>
2013-12-16 12:45:32.868 Pizza to Go[1857:a0b] <null>
2013-12-16 12:45:32.869 Pizza to Go[1857:a0b] 70
2013-12-16 12:45:32.869 Pizza to Go[1857:a0b] 130
2013-12-16 12:45:32.869 Pizza to Go[1857:a0b] 0
2013-12-16 12:45:32.869 Pizza to Go[1857:a0b] 80
2013-12-16 12:45:32.869 Pizza to Go[1857:a0b] 50.5
2013-12-16 12:45:32.869 Pizza to Go[1857:a0b] 10
这来自错误日志

-[NSNull doubleValue]: unrecognized selector sent to instance 0x20af068
2013-12-16 12:55:19.017 Pizza to Go[2083:a0b] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[NSNull doubleValue]: unrecognized selector sent to instance 0x20af068'

我不确定我在这里做错了什么。非常感谢您的帮助。

NSDictionary
/
NSMutableDictionary
接受
[NSNull null]
以指示空条目

编辑:但是是的,当只是比较值时

if([result[i] objectForKey:@"ordertotalprice"]){
    orderHead.price = 0;
}else{
    orderHead.price = [[result[i] objectForKey:@"ordertotalprice"] doubleValue];
}

就足够了。

基础集合只能包含对象类型(
NSObject
子类)。因此,为了表示nil,我们使用
+[NSNull null]
。恰好
NSNull
-description
实现返回
,这就是您在控制台中看到的


请尝试将
-objectForKey
的结果与
[NSNull null]
进行比较。

此处的类比较过于繁琐。
+null
作为一个单例实现,它始终满足简单的指针比较。

if(![result[i] objectForKey:@"ordertotalprice"]){
    orderHead.price = 0;
}else{
    orderHead.price = [[result[i] objectForKey:@"ordertotalprice"] doubleValue];
}
if([result[i] objectForKey:@"ordertotalprice"]){
    orderHead.price = 0;
}else{
    orderHead.price = [[result[i] objectForKey:@"ordertotalprice"] doubleValue];
}

if(![result[i] objectForKey:@"ordertotalprice"]){
    orderHead.price = 0;
}else{
    orderHead.price = [[result[i] objectForKey:@"ordertotalprice"] doubleValue];
}
   if ([[result[i] objectForKey:@"ordertotalprice"] isKindOfClass:[NSNull class]])
   {
      orderHead.price = 0;
   }