0

RESTful Webサービスを非同期に呼び出してJSONコンテンツを取得し、そのJSONレスポンスを解析していくつかのデータモデルエンティティを作成するという一般的なシナリオがあります。このプロセスはキャンセル/再開できます。私は最善のアプローチは次のようになりそのうち完全にはよく分からない:非同期操作と非同期ネットワークタスク?

  • JSON解析のためのネットワーク呼び出しのためのOperationと別のOperationを実装し、前者があることから、両方の操作(JSON出力間の依存関係を設定します後者のデータ入力)。次に、これらの操作をOperationQueueに追加します。
  • URLSessionおよびURLSessionDataTaskを使用してネットワークコールを実行し、コールバックでJSON解析を実行します。

また、別のより良い方法ですか?

EDIT:私のシナリオでは、並行ネットワークコールを実行する必要はありません。別のパラメータでサービスを呼び出す必要がある場合は、必要に応じて以前のネットワークタスクを停止し、新しいサービスを開始することができます。

答えて

0

ほとんどの単純なケースでは、答えは単なるURLSessionですが、複雑であれば、操作は便利なツールです。この正確な使用例は、長さがAdvanced NSOperationsで議論されています。

+0

ありがとうございます。私は、2つのタスク、ネットワークコール+ JSONレスポンスの解析、および並行処理は必要ありません。新しいネットワーク通話が必要な場合は、進行中の場合は前の通話を停止して新しい通話を開始するだけです。それはURLSessionオプションをより適切にするでしょうか? – AppsDev

+0

はい。 'invalidateAndCancel()'を使って既存のセッションを取り消すことができます。あなたはそれを追跡する必要があります。 –