lldb no puede imprimir valores de variable con "error: la reference a 'id' es ambigua"

Desde que actualicé a xcode 4.3 y lo dejé cambiar mi depurador a lldb, cualquier request para imprimir una variable miembro falla con este post de error:

(lldb) print request error: error: reference to 'id' is ambiguous note: candidate found by name lookup is 'id' note: candidate found by name lookup is 'id' error: 1 errors parsing expression 

'self' está bien:

 (lldb) print self (LoginViewController *) $6 = 0x1cd54d50 

Y otras forms de imprimir la variable miembro también fallan:

 (lldb) print self.request error: property 'request' not found on object of type 'LoginViewController *'; did you mean to access ivar 'request'? error: 1 errors parsing expression (lldb) print self->request error: error: reference to 'id' is ambiguous note: candidate found by name lookup is 'id' note: candidate found by name lookup is 'id' error: 1 errors parsing expression 

Todo lo demás parece estar funcionando bien. La window variable de Xcode puede recuperar correctamente el valor. He intentado una compilation limpia y eliminar ~ / Library / Developer / Xcode / DerivedData /. Google no ha revelado ninguna otra instancia del mismo problema.

Encontré un hilo en el foro de desarrollo de Apple, pero no encontré ninguna solución:

https://devforums.apple.com/message/623694

Informé esto a Apple como Bug ID # 11029004.

Encontré una solución:

Utilice 'Editar esquema' en el menu 'Producto', select 'Ejecutar' en la barra izquierda, la pestaña 'Información' y cambie el Depurador a gdb (esto no se aplica a xcode 5, que ya no tiene gdb).

Al parecer, Apple pensó que habían reparado este error en xcode 4.3.1, pero todavía sucede. Presenté información adicional de debugging que solicitaron, así que espero que se solucione para la próxima versión de xcode. Todavía está fallando en 4.3.2. Consulte https://devforums.apple.com/message/623694 para get una actualización de Apple.

ACTUALIZAR

He intentado varios casos con problemas, y todos parecen estar funcionando bien con lldb en Xcode 4.4.1, por lo que recomiendo encarecidamente la actualización si tiene este problema.

Intente con la siguiente expresión,

 p self.view.bounds.size.width 

o usar,

 po self.view 

p – La printing solo se utiliza para imprimir valores normales / simples mientras que, po – Imprimir object funciona igual que NSLog para imprimir el valor de un object

Utilice Edit scheme en el menu 'Producto', select 'Ejecutar' en la barra izquierda, la pestaña 'Información' y cambie el Depurador a gdb.

Product > Edit Scheme > Run (esquemas)> Build Configuration tiene tres opciones (Algunos pueden ver solo dos 1, 2) 1. Depurar 2. Liberar 3. AdHoc

Simplemente revise si está configurado para Debug si no, luego haga que se depuren.

Este fue el error que estaba cometiendo

(Xcode5) Esta no es realmente una respuesta directa a la pregunta original, pero creo que puede ser relevante y odiaría pensar que alguien más desperdicie horas mientras seguía su búsqueda. El problema que tuve fue que no se mostraban valores de variable en la window de debugging.

Comprobé la invocación que realmente se estaba dando al comstackdor y encontré que se estaba optimizando con -Os a pesar de que cada proyecto y destino en el espacio de trabajo se establecían explícitamente en -O0 y las configuraciones mencionadas en otras respuestas aquí estaban configuradas en Depurar. Después de muchas búsquedas, descubrí que hay una opción en la sección 'Información' de cada proyecto llamada "Usar xxx para comstackciones de líneas de command" donde xxx es Debug / Release o cualquier configuration disponible. De acuerdo con la descripción de la información sobre herramientas, esta opción solo debería afectar a las comstackciones realizadas a través de la command-line con la herramienta xcodebuild (que es un poco extraño porque esa herramienta es perfectamente capaz de seleccionar qué esquema usar como opción de command-line). De todas forms, al cambiar esta opción a Debug, finalmente obtuve el IDE para decirle al comstackdor que quería -O0 y -g. No recuerdo que esto haya sucedido con Xcode4, con el mismo espacio de trabajo.

También debería agregar, que es posible que desee hacer una limpieza antes de cambiar esta configuration. Lo cambié sin limpiar, y de repente no encontré algunos de mis files de encabezado (parecía que los encabezados precomstackdos no se generaban correctamente). Después de una hora más de apuñalamiento en la oscuridad, descubrí que si volvía a establecer la opción mencionada anteriormente en Liberar e hizo una limpieza, entonces podría configurarlo para depurar y build correctamente.

¿Alguien sabe si el equipo de desarrollo de Xcode realmente lo usa ellos mismos? Tengo la clara printing de que no lo hacen.

Vaya a Product -> Scheme -> New Scheme... y cree un nuevo esquema para su objective. Limpie su producto bajo Product -> Clean y su aplicación debería funcionar correctamente.

Hacer esto resolvió mi problema.