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