¿Puede explicar qué se entiende por el término MRC y en qué consiste?
sobes.tech AI
Respuesta de la IA
MRC (Contado Manual de Referencias) es un mecanismo de gestión de memoria en el que el programador es responsable de contar las referencias a un objeto y liberar la memoria cuando el objeto ya no es necesario.
En iOS y Objective-C, antes de la aparición de ARC (Contado Automático de Referencias), los desarrolladores aumentaban y disminuían manualmente el contador de referencias mediante los métodos retain y release. Cuando el contador de referencias de un objeto alcanza cero, la memoria del objeto se libera.
La esencia de MRC:
- Cada vez que guardas una referencia a un objeto, llamas a
retain. - Cuando ya no necesitas la referencia, llamas a
release. - Si el contador de referencias es cero, el objeto se destruye.
Esto requiere atención para evitar fugas de memoria (si olvidas llamar a release) o errores de acceso a memoria ya liberada (si llamas a release demasiado pronto).
Ejemplo:
NSObject *obj = [[NSObject alloc] init]; // contador = 1
[obj retain]; // contador = 2
[obj release]; // contador = 1
[obj release]; // contador = 0, el objeto se libera
MRC requiere que el desarrollador controle estrictamente el ciclo de vida de los objetos, a diferencia de ARC, donde esto está automatizado.