如何在objective-c中使用NSNull创建if语句

时间:2011-09-26 06:32:49

标签: iphone json nsmutabledictionary nsnull

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

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

我使用以下句子来阅读日期。

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

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

当arrivalTime为null时,如何创建if语句。我试过[到达时间长度]!= 0,但我不工作,因为到达时间是一个NSNull并且没有这个方法。

2 个答案:

答案 0 :(得分:38)

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]]) {
  ...

答案 1 :(得分:-2)

单行

arriveTime ? job.arriveDone = [NSDate dateWithTimeIntervalSince1970:[arriveTime intValue]/1000]; : NSLog(@"Arrive time is not yet scheduled");