3

iOS アプリがバックグラウンドにある間に、空の POST リクエストを作成し、応答ヘッダーを読みたいと思います。ドキュメントを見ると、アップロードとダウンロードのタスクがバックグラウンドでサポートされていることが明示されていますが、2 つの問題があります。

  1. コンテンツをアップロードする必要がないので、使用する空のファイルを作成する必要はありません。
  2. ヘッダーを取得する必要があるため、ダウンロード タスクは必要なデリゲート コールバックを提供しません。

ドキュメントには次NSURLSessionDataTaskのように記載されています。

注: iOS 8 および OS X 10.10 より前では、データ タスクはバックグラウンド セッションでサポートされていません。

ただし、別のドキュメント ページには、同じタイトル (Background Transfer Considerations) で次のように記載されています。

アップロード タスクとダウンロード タスクのみがサポートされています (データ タスクはサポートされていません)。

正しいドキュメント ページはどれですか? アップロードするデータのないNSURLSessionDataTasksはバックグラウンド セッションでサポートされていますか?

4

1 に答える 1

8

WWDC 2014 ビデオWhat's New in Foundation Networking、約 49 分を参照してください。要するに、バックグラウンド セッションでデータ タスクを実行できるようになりましたが、アプリが実行されている場合にのみ機能します。アプリが一時停止または終了した場合、データ タスクを実行できませんが、応答を受信したときにダウンロード タスクに変換できます。(FWIW、アプリがまだ実行されている間だけ機能するバックグラウンドデータタスクを持つことは特に有用ではありません。)

ダウンロードとデータのタスクについて心配している理由がわかりません。didFinishDownloadingToURLダウンロード タスクを開始してから、 で を見ることができると思いますdownloadTask.response

とは言っても、あなたのより広い意図が何であるかはわかりません。サーバーに ping を実行する場合 (たとえば、データがダウンロード可能かどうかを確認する場合)、通常はバックグラウンド フェッチを使用します。

于 2016-05-27T17:31:12.073 に答える