現在、次のようなコードの一部があります。
__strong MyRequest *this = self;
MyHTTPRequestOperation *operation = [[MyHTTPRequestOperation alloc]initWithRequest:urlRequest];
[operation setCompletionBlockWithSuccess:^(AFHTTPRequestOperation *request, id responseObject) {
[this requestFinished:request];
}
failure:^(AFHTTPRequestOperation *request, NSError *error) {
[this requestFailed:request withError:error];
}];
他のいくつかのクラスがこのコードが配置されているクラスから継承し、独自の requestFinished および requestFailed を実装しているため、私は主にこれを行っています。
自己参照を __weak に変更すると、EXC_BAD_ACCESS エラーが発生し始めます。__strong 参照を使用すると、すべて正常に機能しますが、保持サイクルを作成することを恐れています。私はARCを使用していることに注意してください。
このコードは、問題を引き起こす保持サイクルを作成していますか? これに対する簡単な解決策はありますか?継承クラスが独自のメソッドを実装して応答を処理できるようにするために、私が従うことができる別のアプローチはありますか?