Ios 在目标C中标识空值
我知道我们可以使用nil来验证目标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
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;
}