У меня есть конкретная утечка, которую я не могу понять до конца, потому что мой поиск всегда заканчивается в некоторых библиотеках Apple. Любая помощь от некоторых ветеранов в решении этой проблемы будет принята.
Вот соответствующий исходный код: (утечка указана с комментарием)
- (void)viewDidLoad {
//[super viewDidLoad];
NSManagedObjectContext *context = [(iEatAppDelegate*)[[UIApplication sharedApplication] delegate] managedObjectContext];
addButton = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemAdd target:creator action:@selector(launchCreatorWindow)];
self.navigationItem.rightBarButtonItem = addButton;
NSFetchRequest *fetReq = [[NSFetchRequest alloc] init];
[fetReq setEntity:[NSEntityDescription entityForName:entityName inManagedObjectContext:context]];
NSError *e = nil;
NSArray *temp = [context executeFetchRequest:fetReq error:&e];
//leaking here according to performance tool
self.tableObjects = [[NSMutableArray alloc] initWithArray:temp];
if (e) {
NSLog(@"%@, %@", e, [e description]);
}
[fetReq release];
}
Я попытался освободить temp, но он потерпел крах с EXC_BAD_ACCESS, что, как я полагаю, означает, что оно уже автоматически выпущено.
Инструмент повышения производительности сообщает, что это категория: CFArray (store-deque) Событие: Malloc
также говорит, что моя библиотека несет ответственность. Это трассировка стека, номер 8 - мой кадр viewDidLoad:
0 CoreFoundation __CFAllocatorSystemAllocate
1 CoreFoundation CFAllocatorAllocate
2 CoreFoundation _CFAllocatorAllocateGC
3 CoreFoundation _CFArrayReplaceValues
4 CoreFoundation CFArrayReplaceValues
5 CoreFoundation -[__NSPlaceholderArray initWithObjects:count:]
6 CoreFoundation -[NSArray initWithArray:copyItems:]
7 CoreFoundation -[NSArray initWithArray:]
Этот действительно застрял, любая помощь очень ценится.