繁体   English   中英

保留Appdelegate

[英]Retaining Appdelegate

我知道没有必要保留代表,以避免保留周期。 我在一次采访中碰巧遇到了一个问题:“如果保留appDelegate,会发生什么?”。 我对此没有答案,并据我所知在这里寻求答案。 谢谢

应用程序委托通常创建一次,并且在应用程序的整个生命周期中都存在,并且永远不会被释放。 因此保留它不会有负面影响。

这个问题可能与一个自定义的“委托”有关,如下所示:

@property (nonatomic,weak) id delegate;

对象弱保留其委托的原因是为了避免保留周期。 想象以下情形:对象a创建b并保留它,然后将其自身设置为b的委托。 a由其所有者释放,留下包含a和b的保留周期。 有关保留周期,请参阅Apple文档。

如果不是这样的话。 关于AppDelegate像任何其他对象一样,当没有其他对象保留应用程序委托时,该应用程序委托将被释放。 直到应用程序终止时才会有一个应用程序委托,这是很不寻常的 ,该应用程序可能不会费心地在退出之前释放和重新分配任何东西。

简而言之,如果您保留AppDelegate,则它可能不会被释放...

您可能会发现有用

保留appDelegate根本无关紧要,因为不应在应用程序退出之前取消分配此对象。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM