簡體   English   中英

iOS:簡單的保留周期

[英]iOS: Simple Retain Cycle

假設您有一個帶有以下內容的viewController:

@property (strong) object* A 
@property (strong) object* B

然后,您有目的地在沒有計時器的情況下有目的地創建一個保留周期,這樣

self.A.someStrongProperty = self  //retain cycle

問題:假設包含這些屬性的VC被釋放,保留周期或內存泄漏是否會持續?

在上面發布的代碼中,沒有保留周期。

保留周期為self.A = self; 或更可能是self.A.someStrongProperty = self

編輯:如果您在上面進行了編輯,則假設self是一個視圖控制器,由於保留周期,它不會取消分配。 您應該將someStrongProperty更改為weak屬性,這將阻止保留周期。

是的,如果您保留self ,則會導致一個保留周期。

這將導致self實例不被釋放,從而導致內存泄漏。

為了防止這種情況,您可以使用weak屬性或在某個時候手動將someStrongProperty設置為nil ,以打破保留周期。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM