[英]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.