El recuento automático de referencias libera objetos Objective-C que se han asignado. ¿Qué pasa con las variables primitivas como char *
?¿ARC libera memoria malloc'ed para usted?
Respuesta
Sin según el Saldo de referencias automática llvm document on ARC
implementa la gestión de memoria automática de objetos Objective-C y bloques, liberando al programador de la necesidad explícita insertar retiene y libera. No proporciona un recolector de ciclos; los usuarios deben administrar explícitamente el tiempo de vida en su lugar.
y
Un puntero objeto retenible (o puntero retenible) es un valor de un tipo de puntero objeto retenible (tipo retenible). Hay tres clases de tipos de puntero de objeto puede retener:
- punteros de bloque (formados mediante la aplicación del símbolo de intercalación (^) sigilo declarador a un tipo de función)
- Objective-C de objetos punteros (id, clase, NSFoo *, etc.)
- typedefs marcados con __attribute __ ((NSObject))
Otros tipos de puntero, como int * y CFStringRef, no están sujetos a la semántica de ARC y restricciones.
ARC liberar directamente únicos objetos ObjC (no char*
, void*
, int*
...). Sin embargo, ARC aún llama al método dealloc de objetos. Entonces, si tiene un objeto ObjC, malloc tiene algo de memoria y señala un carácter * en él, y el método dealloc llama gratis para que la memoria se elimine adecuadamente.
Lo mismo para los objetos de Core Foundation, aún necesita CFRelease
ellos. Incluso los tipos de CF con puente libre necesitan llamadas manuales al CFRelease
.
- 1. MKMapView initWithFrame no libera memoria con ARC
- 2. .net ¿ArrayList.Clear libera memoria?
- 3. ¿View.removeAllViews() libera memoria?
- 4. ¿Se libera la memoria cuando lanzo una excepción?
- 5. El proyecto Cocos2D con muchas escenas no libera memoria correctamente
- 6. UIImagePickerController no libera la memoria que ocupa
- 7. Extracción CAKeyframeAnimation no libera la memoria
- 8. Delphi - Minimize & Restore libera la memoria?
- 9. ¿Cómo asigna PHP y libera memoria para las variables?
- 10. C++ destructor: cuando la memoria se libera?
- 11. Pérdida de memoria con ARC
- 12. Comprobando si algo fue malloced
- 13. ¿Para qué USTED usa ReSharper?
- 14. window.URL.revokeObjectURL() no libera memoria inmediatamente (o no lo hace)?
- 15. ¿Por qué UIWebView no libera toda su memoria?
- 16. Gestión de la memoria del objetivo C con bloques, ARC y no ARC
- 17. La lectura desde la transmisión PackagePart no libera la memoria
- 18. ¿Un programa C++ libera automáticamente la memoria cuando se bloquea?
- 19. El asignador de Linux no libera trozos pequeños de memoria
- 20. ¿Salir de un pthread libera la memoria mallada?
- 21. ¿la memoria asignada por kmalloc() se libera automáticamente?
- 22. ¿La memoria filtrada se libera cuando sale el programa?
- 23. ¿Cómo se libera la memoria en xcode 4.2?
- 24. ¿Por qué performGC no libera toda la memoria?
- 25. Pragma para habilitar explícitamente ARC?
- 26. Cuando File.ReadLines libera recursos
- 27. ¿Puenteo correcto para ARC?
- 28. cocoa ¿Los binarios de 64 bits pierden memoria? (liberar NSData no libera la memoria)
- 29. ARC o no a ARC iphone iOS5
- 30. LightWeight IP: Buffer no libera