varias sentencia que programacion instruccion else ejemplos dev condiciones condicional iphone json nsmutabledictionary nsnull

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