No sueltes automáticamente el hilo principal. Eso equivale a una fuga.
Ejecute Construir y analizar religiosamente. Arreglar advertencias.
El analizador estático no detectará todas sus fugas. Las fugas en los instrumentos ni siquiera detectarán todas tus fugas. Use asignaciones de objetos en instrumentos en el dispositivo , ordene por memoria en vivo y preste atención tanto al total como a los bloques individuales. Cualquier objeto que se quede en las transiciones del controlador de vista debe investigarse. Ejecútelo periódicamente y, si es posible, haga que sus evaluadores también lo hagan.
- ¿Cuáles son las 10 principales empresas de desarrollo de aplicaciones iOS en el Reino Unido?
- ¿Cuál es el tipo de prueba de control de calidad de las aplicaciones móviles que podrían subcontratarse?
- ¿Cuál es la mejor aplicación de Android para el desarrollo de aplicaciones de Android?
- ¿Cómo hacen frente los desarrolladores a las críticas ignorantes?
- ¿Aprender desarrollo web va a ayudar en el desarrollo de aplicaciones?
Limpie el caché de URL periódicamente, y definitivamente en advertencias de memoria. En esa nota, maneje las advertencias de memoria. Incluso si no hace nada, deje la función de plantilla en la clase con un llamado a super.
No deje muchas imágenes de alta resolución en la memoria. Tiene relativamente poca RAM en el dispositivo y el sistema operativo lo matará si lo excede en teléfonos más antiguos. Las imágenes fuera de la pantalla deben purgarse de la memoria en vivo.
Cuidado con las bibliotecas de terceros. Las bibliotecas de anuncios en particular pueden ser sumideros de memoria y no tiene acceso a su código para depurar. Use iAds (pero si solo usa uno y asegúrese de no ocultarlo con elementos de la interfaz de usuario) o AdMob.
Los delegados deben ser referencias débiles. Eso significa propiedades con asignar, no retener. Esto se debe a que normalmente los delegados retienen los objetos que les delegan, y si ambos se retienen entre sí, obtendrán lo que se llama un ciclo de retención y ninguno liberará al otro. Boom, dos fugas.
Nombre sus variables de instancia con camelCase y sus locales con under_score. Libere todas las variables de instancia al final de la función a menos que ya se hayan publicado automáticamente cuando las obtenga. Libere todas las variables de instancia, incluso IBOutlets y aquellas con propiedades que especifiquen retención, en dealloc. NUNCA olvides la llamada a Super en Dealloc.
Libere los valores antiguos de variables de instancia o locales con un recuento de retención mayor que cero antes de asignar un nuevo valor Siempre. Si la variable es nula, se comerá el mensaje de lanzamiento, y si no, entonces lo posee, por lo que debe liberarlo.