14
|
Ben Zotto sberry · 技术社区 · 14 年前 |
1
26
uipopOverview控制器的内存管理/拥有略有不同。呈现Popover不会保留内存,因此无法将PopViewController的所有权转移到呈现对象。 为了避免内存泄漏,您必须采用uipopOvercontrollerDelegate并实现didismissPopover方法,如下所示:
这样,您就可以安全分配并显示一个弹出窗口:
|
2
1
显示模式视图控制器将保留uiviewController。事实上,从文件中还不清楚这一点。但是,我用以下代码测试了它…
self.setupViewController已在本地保留,但显示它时会输出以下内容:
因此,它可能保留在本地ModalView控制器属性以及视图层次结构中。放弃它会平衡这些。 所以底线是,如果你想直接控制它,就保留它,但你不必这样做。 编辑-为了清楚起见, 对的 如果将自己设置为对象的代理,则模式将始终保留该对象。这是因为为了安全起见,您应该在DealLoc中将代理设置为零。实际上,模态控制器总是在您解除锁定之前被解除,所以这不是问题。你会注意到苹果在[uiview setAnimationDelegate]中也打破了这个规则,它实际上保留了你设置的代理。 |