0

REST 呼び出しに AFNetworking を使用する一連のコードを採用しました。問題は、これらすべての呼び出しが同期的に行われることです。AFJSONOperation を非同期から同期にするには、どの方法をお勧めしますか?

これまでGCDベースの例を見てきましたが、読みにくいので単純ではありません。いくつかの NSOperation オブジェクトを設定して、応答がキャッチされるまでそれらを絡ませます。

このテーマが物議をかもしていることは承知していますが、私はこの考え方を探求したいと思っています。

4

1 に答える 1

0

シンクロニシティを目指すなら、NSOperations はシンクロニシティのためのツールとは正反対です。NSOperationQueue は GCD の上に構築されており、非同期でしか実行できません (実際、それがこのクラスが最初に存在する理由です)。NSOperationQueue をサブクラス化して、ある程度の同期性を提供できますが、GCD も使用する必要があります。から返されたキューで特定の操作のメソッドを呼び出すために使用できる と をdispatch_sync()調べます。dispatch_barrier_sync()-maindispatch_get_current_queue()

しかし、これはすべて、競合状態を解決するには多すぎます。代わりに、依存する操作を調べたり、非同期性を維持したりしますが、実行順序が維持されるようにシリアル キューを使用します。

于 2013-06-03T11:51:17.047 に答える