Mientras trabajaba en el filtrado de mi NSMutableDictionary basado en la entrada del usuario, he creado el siguiente código:NSPredicar predicateWithFormat: (NSString *) incoherencia?
NSString *predicateString = [NSString stringWithFormat:@"SELF beginsWith[cd] %@", searchString];
NSPredicate *pred = [NSPredicate predicateWithFormat:predicateString];
NSArray *filteredKeys = [[myMutableDictionary allKeys] filteredArrayUsingPredicate:pred];
"searchString que" se pasa al método con esta definición:
(NSString*) searchString
Sin embargo, esto dio lugar a la siguiente excepción:
... levantó [valueForUndefinedKey:]: esta clase es valor no clave de codificación compatible para el ke Y ...
La solución resultó ser:
NSPredicate *pred = [NSPredicate predicateWithFormat:@"SELF beginsWith[cd] %@", searchString];
NSArray *filteredKeys = [[myMutableDictionary allKeys] filteredArrayUsingPredicate:pred];
Lo que no entiendo, es por eso que este último trabajó, y la antigua lanzó la excepción. He leído un poco en key value coding, pero no entiendo cómo se aplica aquí. (es decir, solo cambiando la forma en que se define NSPredicate) ¿Puede alguien aclararme?
Actualización: En respuesta al comentario de jtbandes, continué y creé un proyecto de TestApp para probar este problema. http://dl.dropbox.com/u/401317/TestApp1.tar.gz
Realmente tendrá que mostrarnos la excepción completa si espera que descubramos qué significa. – jtbandes