iphone - que - Cómo hacer una sentencia if con NSNull en object-c
sentencia if en c++ (2)
En una sola linea
arriveTime ? job.arriveDone = [NSDate dateWithTimeIntervalSince1970:[arriveTime intValue]/1000]; : NSLog(@"Arrive time is not yet scheduled");
Estoy desarrollando una aplicación para iPhone, en la que necesito usar JSON
para recibir datos del servidor. En el lado del iPhone, convierto los datos a NSMutableDictionary
.
Sin embargo, hay datos de tipo de fecha que son nulos.
Uso la siguiente oración para leer la fecha.
NSString *arriveTime = [taskDic objectForKey:@"arriveTime"];
NSLog(@"%@", arriveTime);
if (arriveTime) {
job.arriveDone = [NSDate dateWithTimeIntervalSince1970:[arriveTime intValue]/1000];
}
Cuando llegueTime es nulo, ¿cómo puedo hacer la sentencia if? ¡He intentado [cuántica la longitud del tiempo]! = 0, pero no funciona, ya que llega a la hora es un NSNull y no tiene este método.
La instancia de NSNull
es un singleton. puede utilizar una comparación de puntero simple para lograr esto:
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); }
alternativamente, podrías usar isKindOfClass:
si encuentras eso más claro:
if (arriveTime == nil) { NSLog(@"it''s nil"); }
else if ([arriveTime isKindOfClass:[NSNull class]]) {
...