2012-08-24 7 views
15

He convertido recientemente mi proyecto de iOS a ARC. Uno de los controladores de vista no está llamando a su método dealloc y no está siendo desasignado de acuerdo con Instruments.¿Cómo se puede saber qué es lo que está reteniendo un objeto en Instruments?

He comprobado dos veces todas mis propiedades y establecí las adecuadas a débiles. También me he asegurado de que todo lo que tiene el controlador de vista como delegado lo haya desactivado en viewWillDisappear, pero la vista aún se queda en la memoria.

Soy un novato en Instruments: ¿cómo puedo saber qué es lo que conserva esta vista?

+0

Ponga un mensaje de registro en viewWillDisappear con el tipo de objeto y su puntero, luego cuando encuentre que un VC no ha sido desasignado, vea si en realidad obtuvo viewWillDisappear. –

Respuesta

27

Bueno, si son realmente atascado y el programa es complejo (o abstraído, en el caso de ARC), se puede llevar a cabo los cañones:

  • Abra su proyecto Xcode
  • Elija el archivo ejecutable (si es necesario)
  • Prensa cmd+i (Perfil)
  • elegir el instrumento 'fugas' en Le Asistente (si es necesario)
  • Pulse Volver a empezar perfiles
  • ejercicio de su aplicación
  • Presione 'Stop' en Instrumentos
  • verificar si el instrumento 'Asignaciones' se selecciona
  • clic y mantener pulsado el botón emergente llamado elemento
  • Seleccione la lista de objetos 'Estadísticas'
  • Locate la asignación que le interese, entre los registros en la lista de objetos
  • Seleccione esa asignación/objeto
  • Haga clic en la 'flecha de detalles' a la derecha de la dirección en la celda de vista de tabla de ese allo cación
  • Ahora usted ver todos los eventos relacionados con la asignación (asignación, clasificado, operaciones de recuento de referencia)
  • de prensa cmd+shift+e para el detalle ampliado
  • ir a través de los acontecimientos en esta lista, y localice el desequilibrio que está buscando.
+1

El Detalle ampliado le permitirá ver la pila de cómo se asignó la memoria y puede darle una indicación bastante buena de dónde podría tener un 'malloc' que no tiene un' libre' correspondiente. – Gujamin

Cuestiones relacionadas