J'ai une fuite spécifique que je n'arrive pas à creuser au fond, car ma recherche finit toujours dans certaines bibliothèques Apple. Toute aide de certains vétérans à ce sujet serait appréciée.Données de base/NSArray causant des fuites?
Voici le code source pertinente: (fuite indiquée par un commentaire)
- (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];
}
J'ai essayé la libération temporaire, mais il est écrasé avec le EXC_BAD_ACCESS que je crois signifie qu'il est déjà autoreleased. L'outil de gestion des fuites indique qu'il s'agit d'une catégorie: CFArray (store-deque) Événement: Malloc indique également que ma bibliothèque est responsable. Ceci est la trace de la pile, le numéro 8 étant mon cadre 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:]
Celui-ci m'a vraiment bloqué, toute aide est grandement appréciée.