Domanda

Ho scritto un app iOS che chiama NSURLConnection più volte per i dati delle immagini scaricare dal web. A volte, uno NSURLConnection non ha finito prima degli altri ha inizio. Sto vedendo i dati jpeg corrotti e credo che sia perché il mio delegato didReceiveData sta salvando i dati provenienti da due NSUrlConnections separati e munging i due dati JPEG utilizzabili contemporaneamente insieme in una variabile di dati, quindi causando la corruzione.

La mia domanda è: qual è il modo migliore per evitare questo? Non sembra essere un modo per rendere ogni istanza NSURLConnection Salva come variabile di dati separati, o fare ogni istanza di attesa fino a quando l'istanza precedente è fatto prima del salvataggio.

Il mio codice segue fondamentalmente esempio di Apple qui tranne che io chiamo una funzione loadData più volte che crea il NSURLRequest e NSURLConnection. http://developer.apple.com/ biblioteca / mac / # documentazione / cacao / concettuale / URLLoadingSystem / Tasks / UsingNSURLConnection.html

Grazie in anticipo per qualsiasi aiuto.

È stato utile?

Soluzione

Quando la connessione del vostro delegato: didReceiveData: metodo viene chiamato, si avrà l'istanza di connessione come primo parametro. Quindi avrete bisogno di usarlo per tenere traccia di quali connessione dati appena ricevuti.

campione di Apple mantiene un'istanza di NSMutableData. Il tuo codice richiederà diversi casi, una per ogni connessione attiva.

O, naturalmente, si potrebbe avere un oggetto delegato separato (una singola istanza) per ogni connessione. Che può essere più facile.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top