我正在开发一个iPhone应用程序,在其中我需要使用JSON从服务器接收数据。
在iPhone端,我将数据转换为NSMutableDictionary

但是,有一个日期类型数据为空。

我用下面的句子读日期。

NSString *arriveTime = [taskDic objectForKey:@"arriveTime"];
NSLog(@"%@", arriveTime);

if (arriveTime) {
    job.arriveDone = [NSDate dateWithTimeIntervalSince1970:[arriveTime intValue]/1000];
}


当到达时间为空时,我该如何做if语句。我试过[arriveTime length]!= 0,但是我没有用,因为到达时间是一个NSNull,并且没有这种方法。

最佳答案

NSNull实例是一个单例。您可以使用简单的指针比较来完成此操作:

if (arriveTime == nil) { NSLog(@"it's nil"); }
else if (arriveTime == (id)[NSNull null]) { // << the magic bit!
  NSLog(@"it's NSNull");
}
else { NSLog(@"it's %@", arriveTime); }


或者,如果您发现更清晰的信息,则可以使用isKindOfClass:

if (arriveTime == nil) { NSLog(@"it's nil"); }
else if ([arriveTime isKindOfClass:[NSNull class]]) {
  ...

09-25 20:39