Mensaje de error extraño en Xcode 4.3 con LLDB

Actualmente estoy escribiendo una aplicación de iOS con Xcode 4.3.2. En la mayoría de las partes de mi código, la debugging con LLDB funciona bien. Sin embargo, en algún momento recibo un post extraño al pasar por mi código. Cuando coloco el cursor sobre un iVar, dice

Error [IRForTarget]: No se pudo encontrar el símbolo de ivar indirecto Objective-C OBJC_IVAR _ $ _ MyFancyClass.iVar

en lugar de mostrarme el valor. Sin embargo, en la Variables View , puedo verlo bien. Hasta que esté seleccionando Print Description of ... es decir, porque entonces, Xcode se bloquea … Cuando uso GDB, el desplazamiento se mueve pero el tipo y los valores de la variable son incorrectos.

Reconozco que hay algo mal en mi código que a su vez hace que los depuradores fallen. Sin embargo, el código funciona bien. Me encantaría proporcionarle un código de muestreo, pero la class es bastante larga y no puedo precisar la location exacta de mis errores. Entonces, ¿alguien ha encontrado un comportamiento similar?

ACTUALIZACIÓN: En realidad, parece que esto sucede en todas partes en mi código, no solo en algunos files específicos. Si ayuda, mientras que LLDB muestra el post anterior, GDB siempre muestra un object de la Clase que posee el iVar, en lugar del propio iVar. Parece que hay algo mal en la gestión de la memory. Por ejemplo, si digo algo como

 [notificationCenter addObserver:self selector:@selector(foo) name:bar object:objA]; 

el selector se invoca incluso cuando tengo

 [notificationCenter postNotificationName:bar object:objB]; 

La causa de este error son configuraciones de compilation incorrectas, como lo indica la discusión en los comentarios de la publicación de preguntas. Esto se puede solucionar mediante la configuration de "Postprocess de implementación" en NO para el modo de debugging (el valor pnetworkingeterminado).

Asegúrese de que MyFancyClass.m se agregue a su objective

Su selector al que se envía la nsnotification necesita tener un (y solo un) argumento, que es una NSNotification. Entonces, cuando haces esto:

 [notificationCenter addObserver:self selector:@selector(foo) name:bar object:objA]; -(void)foo { } 

… necesitas estar haciendo esto: [notificationCenter addObserver: auto selector: @selector (foo 🙂 nombre: object de barra: objA];

 -(void)foo:(NSNotification *)notification { } 

Observe los dos puntos en el selector para el centro de notificación y el argumento para foo.