2017-12-01 3 views
-1

Ich versuche gerade, ein Problem mit meinen Hintergrund-Download-Aufgaben zu lösen, die bei Netzwerk-Switches auf mysteriöse Weise fehlschlagen, und fand eine Dokumentation, die darauf hindeutet, dass ich mehrere Aufgaben in eine einzige Hintergrundsitzung stellen sollte.Wie kann ich zwischen Download-Aufgaben in einer Hintergrundsitzung unterscheiden?

Sobald Sie mehr als eine Hintergrundaufgabe zu einer Sitzung hinzugefügt haben, wie bestimmen Sie, welche Aufgabe Sie betrachten? Um ein Beispiel zu geben, nehmen wir an, ich habe eine Liste von Dateneinträgen vom Server heruntergeladen und nutze die Hintergrundsitzungsbehandlung, um die zugehörigen Miniaturansichten herunterzuladen.

Wenn eine Hintergrundaufgabe beendet, recieves die Sitzung Delegierten einen Rückruf an urlSession(_ session: URLSession, downloadTask: URLSessionDownloadTask, didFinishDownloadingTo location: URL)

ich eine Kennung auf dem Hintergrund Sitzung festlegen kann (in der Tat, Sie müssen); Wie machst du das mit den einzelnen Aufgaben? Ich möchte in der Lage sein, nach dem Neustart der App eine bestimmte Aufgabe mit einem bestimmten Datenobjekt neu zu verknüpfen, aber es scheint keinen Mechanismus dafür zu geben.

Missverstehe ich etwas oder vermisse etwas in der Dokumentation?

+0

Haben Sie sich die Eigenschaften 'taskDescription' und 'taskIdentifier' angesehen? – rmaddy

+0

@rmaddy, das wäre der Artikel, den ich in den Dokumenten fehlt, danke. – RonLugge

Antwort

1

NSURLSessionDownloadTask ist eine Unterklasse von NSURLSessionTask, die eine Eigenschaft aufweist, die Sie festlegen können. Daher ist ein NSURLSessionDownloadTask Objekt eine Instanz NSURLSessionTask, und Sie können es Eigenschaft festlegen.

+1

TaskIdentifier ist eine Get-Only-Eigenschaft, die Sie nicht festlegen können. Aber Sie können es "bekommen" und speichern Sie es bei der Aufgabenerstellung. – RonLugge

Verwandte Themen