我正在使用 Instrument 泄漏工具来检查代码中的泄漏。
//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
。你可以使用 Instruments 来做到这一点;分配工具可以配置为跟踪保留/释放事件。
关于iphone - 仪器处理的 NSMutableArray 泄漏警告,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10477525/