Базовые данные NSSortDescriptor, вызывающие утечку памяти - PullRequest
0 голосов
/ 10 июля 2010

Я получаю утечку памяти, когда добавляю дескриптор сортировки к своему запросу на выборку в базовых данных.Если я закомментирую блок NSSortDescriptor, он запускается без утечки памяти в Инструментах.

NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] init];

NSEntityDescription *entity = [NSEntityDescription entityForName:@"Pools" inManagedObjectContext:self.managedObjectContext];
[fetchRequest setEntity:entity];

NSPredicate *predicate = [NSPredicate predicateWithFormat:@"game.league.id=%i",[lid intValue]];
[fetchRequest setPredicate:predicate];

NSSortDescriptor *sortDescriptor = [[NSSortDescriptor alloc] initWithKey:@"game.date" ascending:YES];
NSArray *sortDescriptors = [[NSArray alloc] initWithObjects:sortDescriptor, nil];
[fetchRequest setSortDescriptors:sortDescriptors];
[sortDescriptors release];
[sortDescriptor release];

NSError *error;
NSArray *items = [managedObjectContext executeFetchRequest:fetchRequest error:&error];

// Do Something

[fetchRequest release];
[items release];

Есть идеи?

1 Ответ

1 голос
/ 11 июля 2010

В дескрипторе сортировки вы просматриваете отношения, используя путь к ключу game.date.

Ваша утечка, вероятно, связана с одним из этих объектов в пути. Он исчезает при удалении сортировки, потому что тогда объекты в ключевом пути ничего не делают.

Если у вас в game сущности есть временные свойства, пользовательские методы доступа, свойства не-сущности и т. Д., Я бы посмотрел там Пользовательские преобразователи значения также являются хорошим выбором.

Стек в приборе должен точно указывать, какой объект протекает.

...