簡體   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