私はブロック内での自己の使用に混乱しています。Appleのドキュメントのいくつかを調べましたが、それでも正しい答えを見つけることができません。
ブロック内で弱い自己を使用すると言う人もいますが、コピーされるブロックで弱い自己を使用すると言う人もいますが、常に使用する必要はありません。
サンプル1:
self.handler = ^(id response, NSError *error)
{
self.newresponse = response; //use weak self here
};
サンプル2:
弱い自己を使う;
__weak myViewController *weakSelf = self;
[UIView animateWithDuration:interval delay:0.0 options:curve animations:^
{
[weakSelf.view.superview setTransform:CGAffineTransformMakeTranslation(0, -106)];
//in above is it use of weak is neassary
}
completion:^(BOOL finished)
{
}];
弱い自己なしで;
__weak myViewController *weakSelf = self;
[UIView animateWithDuration:interval delay:0.0 options:curve animations:^
{
[myViewController.view.superview setTransform:CGAffineTransformMakeTranslation(0, -106)];
}
completion:^(BOOL finished)
{
}];
上記のサンプルで正しいのは…?**私はARCを使用しています