我正在使用仪器泄漏工具来检查代码中的泄漏。

//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/

10-12 01:24