我正在使用仪器泄漏工具来检查代码中的泄漏。
//MyClass.h
@property (nonatomic, retain) NSMutableArray *marrProperty;
//MyClass.m
NSSortDescriptor *createdTime = [[NSSortDescriptor alloc] initWithKey:@"createdTime" ascending:NO selector:@selector(compare:)];
NSArray *sortedArray = [self.anManagedObj.aRelationships sortedArrayUsingDescriptors:[NSArray arrayWithObject:createdTime]];
[createdTime release];
NSMutableArray *marr = [[NSMutableArray alloc] initWithArray:sortedArray];
self.marrProperty = marr;
[marr release];
使用Instrument中的泄漏工具检查后,在以下代码中被告知泄漏发生:
NSMutableArray *marr = [[NSMutableArray alloc] initWithArray:sortedArray];
self.marrProperty = marr;
我不知道为什么,因为我分配和释放得很好。
最佳答案
仪器显示泄漏对象是分配的,而不是泄漏对象。
您需要找到额外的retain
。您可以使用乐器来做到这一点;分配工具可以配置为跟踪保留/释放事件。
This will likely be helpful。
关于iphone - 仪器解决了NSMutableArray泄漏警告,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/10477525/