Следующий код в моей функции (выполняется в цикле) заставляет мою программу использовать все больше и больше памяти, пока она не выйдет из строя. Что я делаю не так?
- (void) processTrackValues:(NSMutableArray*) tags {
NSImage* trackArt = [tags objectAtIndex:5];
NSMutableArray* tempArtArray = [[NSMutableArray alloc] init];
[tempArtArray addObject:trackArt];
[tempArtArray release];
}
Я тоже пробовал:
- (void) processTrackValues:(NSMutableArray*) tags {
NSImage* trackArt = [tags objectAtIndex:5];
NSMutableArray* tempArtArray = [[NSMutableArray alloc] init];
[tempArtArray addObject:trackArt];
[trackArt release];
[tempArtArray release];
}
Редактировать: вот дополнительная информация об окружающем коде. Я также добавил больше кода к образцу для большей картины.
trackArt
- это указатель NSImage
на один из аргументов этой функции.
- Объект
NSImage
, на который указывает trackArt
, создается вне этой функции.
- Я выделяю и освобождаю
tempArtArray
каждую итерацию цикла (поскольку функция вызывается для каждой итерации цикла)