2010-04-14 11 views

Respuesta

25

Como dijo @Ben S, que es el método retainCount. Sin embargo, estás haciendo la pregunta equivocada, debido a que:

Important: Normalmente no debería haber ninguna razón para pedir explícitamente un objeto lo conservan su recuento es (ver retainCount). El resultado a menudo es engañoso, ya que puede desconocer qué objetos de estructura han retenido un objeto que le interesa. En la depuración de problemas de administración de memoria, debe preocuparse solo por asegurarse de que su código cumpla con las reglas de propiedad.

Así que aquí está la verdadera pregunta: ¿por qué es necesario saber?

+0

En algún lugar de mi código ObjectiveC se invocó una versión en un objeto ya lanzado. Por algún motivo, gdb no se romperá en la ubicación específica donde se produce la violación de acceso a la memoria. Tengo una buena idea de dónde reside el problema, pero me gustaría verificar mi suposición imprimiendo el recuento del objeto sospechoso. – zer0stimulus

+9

Ponga un punto de corte en el método dealloc. Además, consulte este enlace: http://www.cocoadev.com/index.pl?NSZombieEnabled – JeremyP

+5

Mejor aún, use la plantilla Zombies de Instruments. –

23

retainCount

embargo, usted debe considerar el uso de CFGetRetainCount lugar

+1

Se desaconseja usar este método e incluso no se garantiza que devuelva el número correcto. – Eonil

3

usando CFGetRetainCount función

Ejemplo:

print(CFGetRetainCount(object)) 

Leer más here.

Cuestiones relacionadas