1

投稿のフォローアップ: AFNetworking は同期的に (ブロック内で) データを返すことができますか?

その投稿のコメントの1つは次のとおりです。

非同期プログラミングの秘訣は、要求したときにデータがそこにあるという、手続き型の同期的な仮定を破ることです。代わりに、非同期では、何かを要求するときに、データの準備ができたときに実行するコールバックを渡します。この場合、JSON 操作の成功ブロックでブロックを呼び出します。メソッドがデータを返すのではなく、データのダウンロードが完了したときに何をすべきかを伝えます。

iOS で GCD と非同期ダウンロードを使用していますが、async でプログラミングするときにこの「プロシージャル ブレーク」を実装する方法がよくわかりません。

たとえば、画像 URL を含む大量のデータを含む JSON データをダウンロードする必要があるとします。後で実際の画像をダウンロードする必要があります。

テーブル内の各セルは、ダウンロードされた JSON/画像からデータを取り込みます。この場合、この手続き上の中断をどのように実装しますか?

4

1 に答える 1

1

データが到着していない間、テーブル ビュー dataSource はそのテーブル ビューに行が 0 であることを伝え、スピナーを表示します。コールバックが発生したら、データをどこかに保存し、スピナーを削除して、 を呼び出します[tableView reloadData]。基本的には、それだけです。

于 2012-09-26T21:06:39.263 に答える