Если ваше свойство .arrayOfPerformances
никогда не освобождается (обычно оно высвобождается в -dealloc
), тогда сам массив, а также любой объект в массиве будет вытекать при освобождении этого объекта.Вам нужно освободить оба свойства в вашем -dealloc
:
- (void)dealloc
{
... other deallocs
self.arrayOfPerformances = nil;
self.currentPerformanceObject = nil;
[super dealloc];
}
Кроме того, как указывало @BoltClock, вам нужно освободить или автоматически разблокировать NSMutableArray
.Лучший способ сделать это - инициализировать его, используя метод автоматического освобождения:
self.arrayOfPerformances = [NSMutableArray array];
Кроме того, вам не нужно выпускать currentPerformanceObject
, вам просто нужно установить свойство равным nil, так как установкаretain
ed свойство для nil
выпустит его для вас.Ваш код должен выглядеть примерно так:
if (self.arrayOfPerformances == nil) {
self.arrayOfPerformances = [NSMutableArray array];
}
[self.arrayOfPerformances addObject:self.currentPerformanceObject];
self.currentPerformanceObject = nil;