2016-07-09 13 views
1

ブロックに保持されないように弱い参照を作成したいとします。だから私はプロパティがあります。弱い参照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への弱い参照を持つことを意味しますか?私はそれがないと思うが、私は確認する必要がある。

+0

申し訳ありませんが、私は私の質問にタイプミスがありました。私は 'selfWeak.myObject'ではなく、' selfWeak.myObjectWeak'を意味します。私はその問題を修正した。 – SpaceDog

+0

ありがとうございます。このコメントを回答に変換してください。受け入れることができます。 – SpaceDog

答えて

1

はい、selfWeakを使用してください。最後の例では、強い参照サイクルを解除するのに十分です。あなたがそこでそのプロパティを参照するという事実を心配しないでください。

+0

T H A N K S! ! ! – SpaceDog

関連する問題