Recientemente comencé a codificar en Objective-C para dispositivos iOS 5. Mi nueva MacBook está cargada con Xcode 4.2 y los últimos SDK de iOS Mac &. Hasta ahora ha sido una experiencia divertida, pero hay un problema que veo con el estado actual de la documentación y los libros disponibles.Como un nuevo desarrollador de Objective-C, ¿qué problemas relacionados con la memoria debo tener en cuenta al usar ARC?
Específicamente, la mayoría de los libros (que aún deben actualizarse) siempre hacen referencia a cómo y cuándo administrar su memoria. Esto es genial, sin embargo, el SDK/compilador actual incluye el recuento automático de referencias y, como lo dejo activado para mis proyectos, no tengo ni idea de qué debo supervisar y administrar personalmente.
Vengo de un fondo C#. La gestión de la memoria en C# (técnicamente, .NET) está totalmente gestionada por el recolector de elementos no utilizados. Entiendo que ARC es en realidad una función de compilación que agrega automáticamente el código de la placa de caldera a donde pertenece. Además, mis intentos de tratar de descubrir dónde debo administrar mi propia liberación de objetos no han causado más que errores en el compilador porque ARC quiere encargarse de eso.
Todavía tengo que encontrar un caso donde he necesitado para administrar mis objetos. Me estoy volviendo "perezoso" porque no sé qué controlar y liberarme y soy completamente ajeno a cómo este comportamiento podría afectar el rendimiento de mi aplicación.
En términos de usuario nuevo, ¿qué "errores" debería tener en cuenta al usar ARC en mis proyectos de iOS? He leído algunas preguntas sobre la administración de memoria y ARC por aquí, pero para ser sincero, no son amigables con el nuevo desarrollador de iOS. ¿Podría alguien proporcionar una lista de puntos clave razonable que explique qué problemas y cuestiones hay que tener en cuenta, así como una guía imparcial sobre cuándo es necesaria la autogestión de la memoria?
Si es nuevo, use ARC. Para la aplicación promedio, no hay problemas de rendimiento. Si su aplicación usa mucha memoria (imágenes muy grandes, muchos archivos de sonido, etc.), tendrá que lidiar con eso, no con ARC, sino con la cantidad máxima de memoria que puede usar. – nycynik
Aún puede crear ciclos de referencia –
No estoy de acuerdo con el motivo de cierre "no constructivo" aquí. Esta es una pregunta específica con una respuesta objetiva, y actúa como una contraparte de la más técnica [¿Qué tipo de fugas hace el recuento de referencias automáticas de Objective-C (en Xcode 4.2) para prevenir/minimizar?] (Http: // stackoverflow. com/questions/6260256/what-kind-of-leaks-does-objective-cs-automatic-reference-count-in-xcode-4-2). Esto no solicita opiniones ni encuestas para una lista abierta de material que no puede contenerse en una respuesta. –