我有一个自定义 UIView,我将它作为 subview 添加到整个应用程序的多个位置。我通过设置一个属性向 View 发送一个 NSMutable 数组,它会显示一个注释图。除了我的应用程序中的一个 View 外,这很好用。我在包含图表的每个 View 的 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 中,则会显示内存泄漏。当我离开当前 View (显示笔记的地方)并返回到前一个 View (它有一个表格,其中列出了要显示的不同笔记选项)时,就会发生泄漏。
谁能告诉我为什么会产生泄漏?我的 NoteDisplay
中的 noteSpread
属性设置为 nonatomic retain
。
NoteDisplay中的-dealloc
方法是否释放noteSpread属性?
关于iphone - @property setter 中的泄漏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7489283/
欢迎光临 OGeek|极客世界-中国程序员成长平台 (http://jike.in/) | Powered by Discuz! X3.4 |