我正在尝试覆盖UIViewController子类中的setter setView,原因是UIViewController中的setView自动释放视图,我想自己处理内存管理。
我正在尝试使用我的setView覆盖setView:
-(void)setView:(UIView *)view
{
if (_view != view)
{
[_view release];
_view = [view retain];
}
}
但编译器似乎找不到_view ivar,所以我很想知道UIViewController中的setView setter是什么样的?或者我自己可以处理视图属性的任何其他方式吗?
答案 0 :(得分:1)
看起来应该大致如下:
-(void)setView:(UIView *)view
{
if (_view != view)
{
[_view release]; // Release _view, not view
_view = [view retain];
}
}
答案 1 :(得分:0)
您可以在设置之前始终保留视图。它将不会自动释放,直到ref计数< 1。