【发布时间】:2012-07-24 09:23:03
【问题描述】:
当我从 Aaron Hillegass 的 Cocoa Programming for Mac OSX 的第 8 章运行这个程序时遇到错误。 该程序将 tableview 绑定到数组控制器。在数组控制器的setEmployees方法中,
-(void)setEmployees:(NSMutableArray *)a
{
if(a==employees)
return;
[a retain];//must add
[employees release]; //must add
employees=a;
}
在书中,没有包含两个保留和释放语句,每当我尝试添加新员工时,我的程序就会崩溃。谷歌搜索后,我发现这两个必须添加的语句以防止程序崩溃。
我不明白这里的内存管理。我将a 分配给employees。如果我不释放任何东西,为什么我必须保留a?为什么我可以在最后一个赋值语句中使用之前释放employees?
【问题讨论】: