Como programador principiante de iPhone, ¿cuál es la mejor práctica para escribir aplicaciones que se usarán con iOS 5 o versiones anteriores? Específicamente, ¿debo continuar usando la liberación / retención de datos, o debo ignorar eso? ¿Importa?
109
Respuestas:
Tu decides. Puede escribir aplicaciones usando ARC (Recuento automático de referencias), y Xcode escribirá "código de pegamento" para permitir que sus aplicaciones habilitadas para ARC se ejecuten en iOS 4, sin necesidad de modificaciones. Sin embargo, ciertas cosas no funcionarán, y lo más notable es que muchas bibliotecas que podría desear usar arrojarán (a veces) innumerables errores y no podrá usarlas hasta que los desarrolladores publiquen una actualización que sea compatible con ARC.
Editar : Recientemente descubrí que puede desactivar ARC por archivo. Vea la respuesta de pixelfreak . Por lo tanto, mi consejo sigue en pie, pero ahora las bibliotecas de terceros no deberían tener que actualizarse para funcionar con ARC.
Esto es lo que dice Apple sobre la exclusión voluntaria de ARC para archivos específicos:
Consulte la guía de transición completa aquí .
fuente
-fno-objc-arc
JSONKit
, por ejemplo. Intente ejecutar eso a través de la verificación ARC. Verás lo que quiero decir. ;)Para cualquiera que todavía tenga curiosidad sobre cómo desactivar ARC en archivos individuales, esto es lo que hice:
Build Phases > Compile Sources
No sé si esta es la forma recomendada, pero me funciona.
PD: Recopilé esta información de clang.llvm.org aquí, que es de acceso público, por lo tanto, no bajo NDA.
fuente
iOS 5 todavía está bajo un NDA, y probablemente lo estará hasta que publiquen la versión pública. Si tiene una cuenta de desarrollador, diríjase a los foros de desarrolladores de Apple y pregunte allí.
Para versiones anteriores, debe contar las referencias y retener y publicar en consecuencia. Consulte la guía de administración de memoria .
Editar: Aquí hay una especificación pública para el recuento automático de referencias y una cita del página pública de iOS 5 :
fuente
Los detalles son livianos / bajo NDA por el momento, pero Apple ha implementado el Conteo de referencia automático (ARC) en iOS 5, como se detalla aquí: http://developer.apple.com/technologies/ios5/
Si desarrolla una nueva aplicación en Xcode 4 con el SDK de iOS 5, puede ignorar con seguridad el conteo de retenciones / liberaciones.
[editar] sudo rm -rf tiene un buen punto; las bibliotecas de terceros pueden verse significativamente afectadas
fuente
Nadie mencionó SystemConfiguration.framework ? No olvide ponerlo en Frameworks . Pasé varias horas miserablemente para darme cuenta.
fuente
Sin duda, es la elección del desarrollador o del equipo. ARC (Automatic Reference Counter) ha facilitado un poco las cosas al administrar automáticamente la memoria por usted. Liberará, retendrá y desasignará cuando sea apropiado. Creo que debería adquirir experiencia administrando la memoria usted mismo, preferiblemente en una aplicación de prueba, si aún no lo ha hecho. Otra cosa a considerar es si su aplicación se basa en bibliotecas de terceros, que si no se convierten a ARC evitarán que su aplicación se compile. La elección depende obviamente de la situación actual.
fuente
establecer la bandera como -fno-objc-arc en la configuración del proyecto> Fases de compilación> Compilar fuentes
fuente