を保持私は、非同期操作の進行中に、デリゲートを保持し、次のコードを持っていましたか?マニュアルはARC前にARC
24
A
答えて
10
なぜ非同期タスクの間、強力なivarに委譲オブジェクトを割り当てるだけではないのですか?
それともexecuteAsyncWork
3
でローカル変数を持っている。このような何か:
- (void)startAsyncWork
{
id<YourProtocol> delegate = _delegate;
dispatch_async(/* some queue */, ^{
// do work
[delegate doSomething];
}
}
ブロックは、私が時折必要に応じてきた...限り、必要に応じて
31
をデリゲートを保持します手動でオブジェクトを保持したり解放したりするために(時にはデバッグのためだけに)、次のマクロを用意しました:
#define AntiARCRetain(...) void *retainedThing = (__bridge_retained void *)__VA_ARGS__; retainedThing = retainedThing
#define AntiARCRelease(...) void *retainedThing = (__bridge void *) __VA_ARGS__; id unretainedThing = (__bridge_transfer id)retainedThing; unretainedThing = nil
これは物事が保持されるようにする、または維持呼び出すことなく、強い参照を作成するためにどの(*無効)にしてから物事をキャストする__bridge_retainedと__bridge_transferを使用して動作します。
楽しいですが、注意してください!
関連する問題
- 1. ARCかどうかARC iOS5
- 2. ARC
- 3. ARCアプリケーションに非ARCライブラリを含める?
- 4. 非ARCプロジェクトをARCに変換する
- 5. iOS 4.3はARC
- 6. Objective-CのARC読み取り専用プロパティと前ARCにプライベートセッター実装
- 7. ARC、非ARC、および継承
- 8. 異なるメモリ管理ARC/no ARC
- 9. dispatch_asyncと(非ARC)非ARCアプリで
- 10. realloc()&ARC
- 11. ARCアプリ
- 12. -fno-にObjCアークARC
- 13. ARCリーク機能
- 14. ARCとASIHTTPRequest
- 15. キーチェーンのARCエラー
- 16. Canvas Instrucuture Arc API
- 17. Objective-CのARC
- 18. AdWhirlとARC
- 19. ARCアプリのUIAlertView
- 20. JSONValue ARC問題
- 21. 参照カウント、ARC
- 22. ARCとInterface Builder
- 23. 問題ARC
- 24. NSNetServiceデリゲートとARC
- 25. iOS ARC UIAlertViewリークメモリ
- 26. jsdraw2dのArc&Circle
- 27. protobuf iOS5 ARC
- 28. performSelector ARC警告
- 29. ARC変換エラープレビュー
- 30. Flex ANE、iOS、ARC
ありがとうございます。それも私の最初のアイデアでした。私は別のきちんとしたトリックがあることを望んでいた;-)。 – Alexander
あり、GCDを使っています! ;-) – hypercrypt
@hypercrypt:GCDは変数をハングアップさせるための解決策ではありませんが、非同期作業を実際に行うのは特に良い方法です。 – JeremyP