Si decido actualizar a iOS 5, ¿necesito eliminar todas las declaraciones [myObject retener] y [myObject release] de mi código?
Sí, pero XCode 4.2 incluye una nueva herramienta "Migrar a Objective-C ARC" (en el menú Editar-> Refactorizar), que lo hace por usted. Llamar a Dealloc es una historia diferente. Como se menciona en los comentarios, la referencia de clang indica que debe mantener su método dealloc:
Justificación: a pesar de que ARC destruye las variables de instancia automáticamente, todavía hay razones legítimas para escribir un método dealloc, como liberar recursos no retenibles. No llamar a [super dealloc] en este método es casi siempre un error.
Habilita ARC utilizando un nuevo indicador del compilador -fobjc-arc. ARC es compatible con Xcode 4.2 para Mac OS X v10.6 y v10.7 (aplicaciones de 64 bits) y para iOS 4 e iOS 5. (Las referencias débiles no son compatibles con Mac OS X v10.6 e iOS 4). No hay soporte ARC en Xcode 4.1.
-
Si desarrollo una nueva aplicación para iOS 5 usando ARC, ¿tendré que implementar algún tipo de verificación de "retrocompatibilidad"? Es decir: ¿tendré que verificar la versión de iOS y llamar a retener y liberar en consecuencia? Entonces, básicamente, ¿ARC está disponible para todas las versiones de iOS o solo para iOS 5?
No, porque ARC hace su magia en tiempo de compilación y no en tiempo de ejecución.
En lugar de tener que recordar cuándo usar retención, liberación y liberación automática, ARC evalúa los requisitos de vida útil de sus objetos e inserta automáticamente las llamadas de método apropiadas para usted en el momento de la compilación. El compilador también genera métodos dealloc apropiados para usted.
Más información sobre ARC: http://clang.llvm.org/docs/AutomaticReferenceCounting.html