2012-01-10 7 views
19

¿Hay alguna opción de compilación (o de alguna otra manera) para ver dónde ARC está insertando retener y liberar? Esto es principalmente por curiosidad. Puedo verlos en el código de desmontaje, pero a veces es difícil pasarlo.Ver dónde está insertando ARC retener y liberar

+2

+1 pregunta muy interesante. Por otro lado, no veo cómo esto podría ayudarte, pero estoy seguro de que tienes alguna situación en mente ... –

+3

Puede ser útil si tiene que hacer una gran cantidad de moldes de tipo __bridge al código c. Las cosas pueden ser un poco confusas, pero como dije antes, tengo curiosidad. Me gusta saber cómo funcionan las cosas, no solo cómo hacer que funcionen. –

+0

Roger, no entiendo tu objetivo. Si desea controlar retenciones, etc. simplemente compile como no ARC (-fno-objc-arc). ARC va a agregar retenciones tal como lo haría, pero tal vez use una versión anterior de la que pueda. Esto será lo mismo para los sistemas operativos ARC y ARC anteriores. Andrew – adonoho

Respuesta

0

No, no es así. Aunque estoy de acuerdo, sería una adición muy buena (¡aunque no serviría para muchas funciones)! Y como dijiste, puedes mirar el código de desensamblaje si realmente sientes curiosidad.

4

No. Si el compilador proporcionara esto, se sentiría absolutamente abrumado por la cantidad de retenciones/lanzamientos, ya que la mayoría de ellos se eliminan durante la etapa de optimización. Pero el compilador ni siquiera puede hacer eso, porque ARC no es una etapa de procesamiento previo. Es parte de la compilación. Entonces no podrás obtener nada más que mirar la asamblea.

+0

¿Qué pasa cuando obtiene Código ARC-ed para 4.x? –

+0

@Yar: ¿Qué quieres decir? –

+0

Código que está compilado para funcionar con iOS 4.x, que realmente no es compatible con ARC. Ese código en realidad se inserta en el código antes de la compilación, ¿verdad? –

Cuestiones relacionadas