Tengo un problema con NSDictionary
que devuelve null
para un NSString
aunque la cadena está en el diccionario. Aquí está el código:¿Qué causaría que objectForKey: devuelva nulo con una cadena válida en su lugar?
- (void)sourceDidChange:(NSNotification *)aNote {
NSDictionary *aDict = [aNote userInfo];
DLog(@"%@", aDict);
NSString *newSourceString = [aDict objectForKey:@"newSource"];
DLog(@"%@", newSourceString);
newSourceString = [newSourceString stringByReplacingOccurrencesOfString:@" " withString:@""];
DLog(@"%@", newSourceString);
NSString *inspectorString = [newSourceString stringByAppendingString:@"InspectorController"];
DLog(@"%@", inspectorString);
newSourceString = [newSourceString stringByAppendingString:@"ViewController"];
DLog(@"%@", newSourceString);
}
Y consigo las siguientes declaraciones de registro:
2010-04-17 23:50:13.913 CoreDataUISandbox[13417:a0f] -[RightViewController sourceDidChange:] { newSource = "Second View"; }
2010-04-17 23:50:13.914 CoreDataUISandbox[13417:a0f] -[RightViewController sourceDidChange:] (null)
2010-04-17 23:50:13.916 CoreDataUISandbox[13417:a0f] -[RightViewController sourceDidChange:] (null)
2010-04-17 23:50:13.917 CoreDataUISandbox[13417:a0f] -[RightViewController sourceDidChange:] (null)
2010-04-17 23:50:13.917 CoreDataUISandbox[13417:a0f] -[RightViewController sourceDidChange:] (null)
Como se puede ver, la cadena está en el diccionario bajo la clave newSource
, aún cuando llamo objectForKey:
, me obtener null
. Incluso he intentado la opción alternativa de limpiar el proyecto.
¿Alguien ha topado con esto alguna vez, o acabo de olvidar algo realmente básico?
Por curiosidad, después de configurar y registrar 'aDict', ¿qué ocurre si haces' DLog (@ "% @", [aDict allKeys]); '? – Isaac
¿Es este el código * actual *? ¿Alguna posibilidad de que hayas escrito mal la clave? ¿Qué ofrece 'DLog (@"% @ ", [aDict allKeys])'? –
También es posible que desee intentar el registro 'newSourceString' con'% p' en lugar de '% @'. –