2
私はARCを初めて使いました。完全なブロックでメソッドを呼びたいと思いますが、警告が表示されます。このブロックで「自己」を強くキャプチャすると、保持サイクルにつながる可能性があります。。コード:ブロック内のメソッドを呼び出しますか?
- (void) handlerComplete
{
//...
}
- (void) loadData
{
...
operation.completeBlock = ^(NSInteger index) {
[self handlerComplete];
};
}
アドバイスはありますか?ありがとう。
operation.completeBlock = ^(NSInteger index) {
__weak Foo *bar = self;
[bar handlerComplete];
};
を、私はこれが機能すると思います、私はそれを確認していないにもかかわらず:
私はそれがうまくいくはずだと信じていますが、__weak(または__unsafe_unretained)変数をブロック外で宣言する必要があるかもしれません。 –
ありがとう、ブロック内に '__weak Foo * bar = self;'を入れても同じ警告が出ます。私はそれをブロックの外に置くと動作します。 – fannheyward