【发布时间】:2011-09-20 17:34:42
【问题描述】:
我有一个自定义 UIView,我将它作为子视图添加到整个应用程序的多个位置。我通过设置一个属性向视图发送一个 NSMutable 数组,它会显示一个注释图。除了我的应用程序中的一个视图外,这很好用。我在包含图表的每个视图的 viewDidLoad 部分中使用此代码。
endNoteDisplay =[[NoteDisplay alloc] initWithFrame:CGRectMake(0,0,320,180)];
endNoteDisplay.tag = 100;
endNoteDisplay.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@"Note_Bkg.png"]];
NSMutableArray *tmpNts = [[NSMutableArray alloc] initWithObjects: @"C", @"E", @"G", @"A",nil];
endNoteDisplay.noteSpread = tmpNts;
[tmpNts release];
[self.view addSubview:endNoteDisplay];
[endNoteDisplay release];
如果我删除
endNoteDisplay.noteSpread = tmpNts;行,一切正常,没有泄漏。如果我将其留在 Instruments 中,则会显示内存泄漏。当我离开当前视图(显示笔记的地方)并返回到前一个视图(它有一个表格,其中列出了要显示的不同笔记选项)时,就会发生泄漏。
- 我的应用程序按预期工作,这是唯一出现的泄漏。
谁能告诉我为什么会产生泄漏?我的NoteDisplay 中的noteSpread 属性设置为nonatomic retain。
【问题讨论】:
标签: iphone objective-c ios memory-management memory-leaks