无法检查NSDictionary对象的值是否为null

时间:2013-12-27 14:56:41

标签: objective-c nsdictionary

我尝试检查NSDictionary的objectforkey值。但我不能。 在调试模式下,它表示值为:     LastOrderId = "<null>";; 此代码或使用isEqualtoString修改,不起作用。

lastorderId=[theItem objectForKey:@"LastOrderId"];
if(lastorderId==nil)
        lastorderId=@"0";

当我尝试使这段代码工作时:

NSInteger *newvalue = [[theItem valueForKey:@"LastOrderId"]integerValue] ;

,它给出了这个错误:

-[NSNull integerValue]: unrecognized selector sent to instance 0x3abeba70

如何检查这是否为空?谢谢。

1 个答案:

答案 0 :(得分:8)

由于Cocoa集合无法存储nil,因此存储了一个特殊的NSNull对象来表示nil。但是,这些对象不是nil,因此您尝试的检查不起作用。你可以这样做:

lastorderId=[theItem objectForKey:@"LastOrderId"];
if(lastorderId==[NSNull null]) {
    lastorderId=@"0";
}