所以我有一个UIViewController我通过委托呈现它的视图,代码是:
[self.delegate fullStrViewController: self addFullScreenSubview:fullSize];
这里的fullSize是我提出的UIViewController。在fullSize里面我有一个dimiss方法,它基本上从superview中删除了视图。问题是我在哪里实际上在fullSize上调用release?如果我在调用上面的委托后执行了它,当我调用dismiss时它会导致错误,因为UIViewController已经被释放。有什么想法吗?
答案 0 :(得分:0)
UIView
的任何子类始终保留其子视图。因此,将release
作为UIView
添加到另一个subview
后,可以安全地致电UIView
。但是,父母会在孩子被发送release
时给孩子打电话dealloc
,所以这假设你只想让孩子在父母的一生中坚持下去。
答案 1 :(得分:0)
UIView
子类在将视图插入视图层次结构时会保留视图。
当您的视图从层次结构中删除时,它将通过释放来平衡保留。
如果此时没有其他对象的引用,它将被解除分配。
开始使用ARC,你真的不必担心这些事情。