Frage

Ich habe eine iOS-App geschrieben, die NSURLConnection mehrere Male Download von Bilddaten aus dem Web aufruft. Manchmal hat man NSURLConnection nicht vor den anderen beginnt beendet. Ich sehe korrupt jpeg Daten und ich denke, es liegt daran, dass mein didReceiveData Delegat Daten aus zwei separaten NSUrlConnections und munging die beide JPEG-Datenströme zusammen in eine Datenvariable zu speichern, damit die Korruption verursacht.

Meine Frage ist: Was ist der beste Weg, um dies zu vermeiden? Es scheint nicht ein Weg, um jede NSURLConnection Instanz machen Speichern in eine separate Datenvariable oder jede Instanz warten lassen, bis die vorherige Instanz vor dem Speichern durchgeführt wird.

Mein Code folgt im Grunde Apples Beispiel hier außer ich eine Funktion loaddata mehrmals aufrufen, die die NSURLRequest und NSURLConnection schafft. http://developer.apple.com/ Bibliothek / mac / # Dokumentation / Cocoa / Conceptual / URLLoadingSystem / Aufgaben / UsingNSURLConnection.html

Vielen Dank im Voraus für jede Hilfe.

War es hilfreich?

Lösung

Wenn Sie Ihre Delegierten Verbindung: didReceiveData: Methode aufgerufen wird, werden Sie die Verbindungsinstanz als ersten Parameter haben. So müssen Sie das verwenden, die Verbindung nur empfangenen Daten im Auge zu behalten.

Apple Probe hält eine Instanz von NSMutableData. Ihr Code wird mehrere Instanzen benötigt, eine für jede aktive Verbindung.

oder natürlich können Sie einen separaten Delegatobjekt haben (eine einzelne Instanz) für jede Verbindung. Das kann einfacher sein.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top