Утечка памяти initWithContentsOfFile - PullRequest
0 голосов
/ 18 мая 2011

Я только что закончил запуск своего приложения через инструменты, и я теряю _NSCFDictionaries из-под контроля.У меня нет @property, настроенного для workoutArray, так как это частная переменная экземпляра.

NSString *Path = [[NSBundle mainBundle] bundlePath];
NSString *DataPath = [Path stringByAppendingPathComponent:@"data.plist"];
NSArray *rawDump = [[NSArray alloc] initWithContentsOfFile:DataPath];
workoutArray = [[NSMutableArray alloc] init];

for (NSDictionary *dict in rawDump){
    [workoutArray addObject: dict];
}

[rawDump release];

Я выпускаю workoutArray в -dealloc

 - (void)dealloc {
[workoutArray release];
[managedObjectContext release];
[df release];
[super dealloc];

}

Любая помощь приветствуется.

1 Ответ

3 голосов
/ 18 мая 2011

Поскольку вы указываете, что запускаете это более одного раза (в одном и том же экземпляре), проблема заключается в том, что вы переназначаете свой workoutArray без освобождения старого объекта. Вам необходимо release старый объект перед переназначением:

[workoutArray release];
workout Array = [[NSMutableArray alloc] init]; // etc.

Поскольку workoutArray, поскольку в первый раз ивар по умолчанию равен нулю, это всегда должно работать правильно.

...