NSMutableArray *a1 = [[NSMutableArray alloc] init];
NSMutableArray *a2 = [NSMutableArray array];
TempObj *obj = [[TempObj alloc] init]; //assume this line is repeated for each obj
[a1 addObject:obj];
[a1 addObject:obj2];
[a1 addObject:obj3];
[a1 addObject:obj4];
[obj release];
[obj2 release];
[obj3 release];
[obj4 release];
[a1 release];
Ok so a2 es un obj de liberación automática, así que no tengo que llamar a la versión en él? Además, ¿cómo sabes cuándo obtienes un objeto de liberación automática?NSMutableArray gestión de la memoria
¿Y para a1, no tengo que recorrer la matriz y soltar cada objeto primero? ¿Qué pasa si llamo [a1 removeAllObjects]; llama eso a [[a1 objectAtIndex: #] release];
¿Se supone que debo liberar esos objetos después de que los haya agregado a la matriz?
haciendo un bucle en todos los objetos y soltando 1 por 1 y que la liberación de llamada en la matriz en sí es incorrecta. – chicken
Eso es correcto: la matriz maneja todo eso por usted. – Andy
me ayudó mucho. ¡Gracias! –