簡體   English   中英

弱引用難題

[英]Weak references conundrum

假設我想創建一個弱引用,這樣它就不會被塊保留。 所以我有一個屬性:

@property (nonatomic, strong) MyClass *myObject;

我這樣做:

__weak typeof(self.myObject) myObjectWeak = self.myObject;

void (^doSomething)() = ^void() {
   [myObjectWeak doSomething];    
};

但是這個呢:

__weak typeof(self) selfWeak = self;

void (^doSomething)() = ^void() {
   [selfWeak.myObject doSomething];    
};

這會產生同樣的效果嗎? 我的意思是在塊內對 myObject 有一個弱引用? 我懷疑它不是,但我只需要確認。

是的,在最后一個例子中使用selfWeak足以打破強引用循環。 不要擔心你在那里引用了它的屬性。

暫無
暫無

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

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