7

Estoy confundido con el material de Apple.diferencia entre ARC y MRC

de 3 maneras que administramos la memoria, que son:

  1. conteo automático referance.
  2. recuento manual de referencias.
  3. colección de basura.

Mi duda es cuál es la diferencia entre el recuento de referencias automáticas y el recuento de referencias manual.

Puede alguien explicar?

+0

posible duplicado de [¿Cómo funciona el nuevo mecanismo de conteo automático de referencia?] (Http://stackoverflow.com/questions/6385212/how-does-the-new-automatic-reference-counting-mechanism-work) –

Respuesta

14

En ARC no tiene que liberar/AutoRelease la memoria asignada por usted mientras que en caso de manual de lo que tiene que hacerse cargo de esto. p. Manual caso

caso
-(void)someMethod 
{ 
    NSMutableArray *arr = [[NSMutableArray alloc] init]; 
    //use array 
    [arr release]; //when array is in no use 
} 

ARC

-(void)someMethod 
{ 
    NSMutableArray *arr = [[NSMutableArray alloc] init]; 
    //use array 
} 
+0

Ok. Gracias U. ¿Hay alguna diferencia entre ellos? – user1157838

+0

@ user1157838: sí, fíjese que el caso de ARC no es [arr release] ;. También tenga en cuenta que en iOS recolección de basura no está disponible. – Bogatyr

+0

¿Hay alguna configuración para usar el ARC? Sí – user1157838

2

En ARC el sistema operativo se ocupa de la gestión de memoria, por lo que no tiene que preocuparse por la liberación de los objetos. Es bastante limpio para principiantes. Mientras que en el conteo manual usted tendrá que hacer un seguimiento de la liberación de la memoria y si no lo hace bien, terminará bloqueando su aplicación. ARC y MRC están disponibles en ios donde la recolección de basura está limitada a MAC-OSX. Espero que esto ayude. Inder ha dado un buen ejemplo.

+0

En cualquier ayuda de la versión ARC o no? – user1157838

+0

arco está disponible en el SDK 4.2 –

+0

T significa desde SDK 4.2 en adelante no hay necesidad de liberar el objects.We puede crear cualquier número de objetos .AM en lo correcto? – user1157838