我在创建UITableViewCell的子类时使用addSubview方法添加子视图。
然后,当我不再需要视图时,我在dealloc方法中释放了它。 我的问题是发布视图的最佳方式是什么?
[myView release]
是否足够,或者我应该致电:
[myView removeFromSuperview];
[myView release];
或只是[myView removeFromSuperview]
;
感谢您的帮助。
答案 0 :(得分:1)
简单规则:如果保留它,则必须将其释放。
我假设你说你不再想要屏幕上的视图了。比你必须打电话给removeFromSuperView
,否则超级视图仍保留视图并释放它只会将所有权转移到超级视图。
答案 1 :(得分:0)
这取决于您创建视图的方式。传入时,应确保不拥有子视图。
我将在这里走通用路线。
UIView * mySubview = [[UIView alloc] initWithFrame:frame];
[superView addSubview:mySubview];
[mySubview release];
现在你的子视图在你想要的地方,但是superView拥有它。 如果您的superView位于视图层次结构中而您自己并不拥有它,那么当您的superView从视图层次结构中删除时,它的子视图将会被各自的所有者发布。