解雇UIViewController视图并释放内存

时间:2012-01-23 23:47:28

标签: iphone objective-c ipad memory-management uiviewcontroller

所以我有一个UIViewController我通过委托呈现它的视图,代码是:

[self.delegate fullStrViewController: self addFullScreenSubview:fullSize];

这里的fullSize是我提出的UIViewController。在fullSize里面我有一个dimiss方法,它基本上从superview中删除了视图。问题是我在哪里实际上在fullSize上调用release?如果我在调用上面的委托后执行了它,当我调用dismiss时它会导致错误,因为UIViewController已经被释放。有什么想法吗?

2 个答案:

答案 0 :(得分:0)

UIView的任何子类始终保留其子视图。因此,将release作为UIView添加到另一个subview后,可以安全地致电UIView。但是,父母会在孩子被发送release时给孩子打电话dealloc,所以这假设你只想让孩子在父母的一生中坚持下去。

答案 1 :(得分:0)

UIView子类在将视图插入视图层次结构时会保留视图。 当您的视图从层次结构中删除时,它将通过释放来平衡保留。

如果此时没有其他对象的引用,它将被解除分配。

开始使用ARC,你真的不必担心这些事情。