¿copy/mutableCopy operación incremento retener el valor de conteo? (Objective C)¿el incremento de la operación copy/mutableCopy retenga el valor de conteo? (Objetivo C)
18
A
Respuesta
29
La semántica normales de copy
mutableCopy
y son para darle vuelta un objeto retenido, al igual que la creación de una nueva vía alloc
/init
tendría. No aumentan el recuento de referencia del objeto que se está copiando, si eso es lo que estás preguntando. Desde el NSObject
documentation para copy
:
Si está utilizando memoria administrada (no recolección de basura), este método conserva el nuevo objeto antes de devolverlo. El invocador del método, sin embargo, es responsable de liberar el objeto devuelto.
Cuestiones relacionadas
- 1. Bloques del objetivo C: ¿Hay alguna forma de evitar que se retenga el "yo"?
- 2. ¿Cambiar el conteo actual de un valor Incremento automático en MySQL?
- 3. Objetivo-C, ¿Cómo puedo obtener el valor de un UITextField?
- 4. Cambiar el incremento de los campos de incremento automático por
- 5. valor de incremento de int siendo apuntada por el puntero
- 6. Ajuste del objetivo C en el objetivo C++/C++
- 7. ¿Cómo puedo obtener el valor de la hormiga objetivo actual?
- 8. Método de sintaxis en el objetivo C
- 9. Cambiar el conteo de ViewPager
- 10. Caret en el objetivo C
- 11. Metaprograma para el conteo de bits
- 12. el futuro del objetivo c?
- 13. pi en el objetivo C
- 14. Selectores en el objetivo C
- 15. Uso de extern en el objetivo C
- 16. IDE para el objetivo C
- 17. constructor en el objetivo c
- 18. Devolución de errores en el objetivo-c
- 19. cómo imprimir bool en el objetivo c
- 20. El objetivo principal de eventos en C#
- 21. Problemas de herencia en el objetivo C
- 22. __OBJC__ en el objetivo C
- 23. epub en el objetivo c
- 24. Cadena para flotar en el objetivo c
- 25. Métodos de utilidad en el objetivo-c
- 26. mysql valor de incremento campo de clasificación
- 27. Compilar C# en el objetivo-C
- 28. C#, marco de la entidad, incremento automático
- 29. Objetivo C - Eliminar el último carácter de la cadena
- 30. ¿Es posible la sobrecarga de funciones en el objetivo C?
+1, excepto que bajo algunas circunstancias ('copiando un objeto inmutable, por ejemplo), invocando' copia' puede simplemente incrementar el conteo retenido y devolver el mismo objeto. (sin embargo, las mismas reglas de administración de memoria aún se aplican, por supuesto) –
+1 @Dave, absolutamente cierto. Sin embargo, no hay diferencia práctica para la persona que llama. –
Lo que es más importante, el recuento de retención preciso es un detalle de implementación en el que el programador no debería estar pensando. Cuando 'copies', puedes tratar eso como un nuevo objeto con un conteo de retención de 1 en cualquier programa correcto. El recuento de retención real no es esencialmente de nuestra incumbencia. – Chuck