2017-12-01 13 views
-1

私は現在、バックグラウンドのダウンロードタスクでネットワークスイッチ中に不思議なことに失敗して、いくつかのデバッグを試みており、複数のタスクを1回のバックグラウンドセッションに入れなければならないことを示唆するドキュメンテーションを発見しました。バックグラウンドセッションでダウンロードタスクを区別するにはどうすればよいですか?

セッションに複数のバックグラウンドタスクを追加したら、どのタスクを見ているかをどのように判断しますか?例を挙げると、私はサーバからデータエントリのリストをダウンロードしたと仮定し、関連するサムネイルをダウンロードするためにバックグラウンドセッション処理を使用しています。

バックグラウンドタスクが終了すると、セッションデリゲートはurlSession(_ session: URLSession, downloadTask: URLSessionDownloadTask, didFinishDownloadingTo location: URL)

にコールバックをrecieves私は(実際には、あなたがする必要がある)背景セッションに識別子を設定することができます。どのように個々のタスクでそうするのですか?私は、再起動後に特定のタスクを特定のデータオブジェクトに再関連付けできるようにしたいが、そうするためのメカニズムはないようだ。

ドキュメントに何か誤解または不足していますか?

+0

あなたは 'taskDescription'と' taskIdentifier'プロパティとして見ましたか? – rmaddy

+0

@rmaddyこれは私がドキュメントから逃している項目です、ありがとうございます。 – RonLugge

答えて

1

NSURLSessionDownloadTaskNSURLSessionTaskのサブクラスで、設定できるプロパティはtaskIdentifierです。そのため、NSURLSessionDownloadTaskオブジェクトのインスタンスがNSURLSessionTaskで、taskIdentifierというプロパティを設定できます。

+1

taskIdentifierはget-onlyプロパティです。設定することはできません。 しかし、それを取得してタスク作成時に保存することができます。 – RonLugge

関連する問題