Estoy trabajando con el objetivo c para una aplicación de iphone.if instrucción para el diccionario objectforkey: @ "clave" cuando el valor es <null>
Veo que [dictionary objectForKey:@"key"]
devuelve <null>
. Hacer un if([dictionary objectForKey:@"key"] == nil || [dictionary objectForKey:@"key"] == null)
no parece detectar este caso.
Haciendo un if([[dictionary objectForKey:@"key"] isEqualToString:@"<null>"])
hace que mi programa se cuelgue.
¿Cuál es la expresión correcta para capturar <null>
?
Más detalles Una sentencia if para nil todavía no está alcanzando el caso ... Tal vez estoy demasiado cansado para ver algo, pero aquí está el Info adicional:
diccionario está poblada través de una URL que contiene datos JSON de este modo:
NSURL *url = [NSURL URLWithString:"http://site.com/"];
dataresult = [NSData dataWithContentsOfURL:url];
NSError *error;
NSMutableDictionary *dictionary = [NSJSONSerialization JSONObjectWithData:dataresult options:kNilOptions error:& error];
haciendo un NSLog en el diccionario da esta salida:
{
key = "<null>";
responseMessage = "The email/registration code combination is incorrect";
}
disculpe mi error, lo cambié a diccionarios ... estoy muy cansado en este momento – John
Hmmm ... ahora que estoy mirando un poco más de cerca su pregunta, * ya * está buscando nada en su caso "si". Si hace algo así como "' id something = [dictionary objectForKey: @ "clave"]; '" en su código y establece un punto de interrupción de depuración allí, ¿es * algo * algo o es nulo? –
la salida de algo es ''. El feed json fue generado por un sitio web php. Eso hace una diferencia? –
John