0
我在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
?
你说得对。我使用4.1并没有ARC。谢谢。 – Standstill 2012-07-24 09:47:37