Я немного озадачен освобождением памяти для элементов массива, которые совместно используются несколькими массивами. Вот сценарий:
В классе менеджера есть переменная экземпляра NSMutableArray * mgrArray
Вспомогательный класс имеет переменную экземпляра NSMutableArray * helperArray.
Метод инициализации менеджера:
NSMutableArray* mgrArray = [[[NSMutableArray alloc] init] autorelease];
for (int i=0; i<10; i++) {
Food *f = [[[Food alloc] initWithType:@"Fruit"] autorelease];
[mgrArray addObject:f];
}
Метод инициализации помощника:
NSMutableArray* helperArray = [[[NSMutableArray alloc] init] autorelease];
Объект manager передает некоторые элементы mgrArray в класс Helper для хранения в целях собственного доступа Helper (скажем, для эффективности). Какой-то метод Manager, который делает это:
Food *e1 = [mgrArray objectAtIndex:3];
Food *e2 = [mgrArray objectAtIndex:5];
Food *e3 = [mgrArray objectAtIndex:7];
[helper. helperArray addObject:e1];
[helper. helperArray addObject:e2];
[helper. helperArray addObject:e3];
Вопрос 1: при добавлении e1 в helperArray, следует ли его скопировать или сохранить или все в порядке, как написано выше?
Вопрос 2: кто должен освобождать память о пищевых объектах и как?