2009-08-10 2 views
17

Sto tentando di scaricare un file di grandi dimensioni su iPhone e salvarlo su disco mentre viene scaricato.Aggiungere NSData a un file nell'obiettivo C

Idealmente, in:

-(void)connection:(NSURLConnection*)connection didReceiveData:(NSData*)data { 

} 

voglio accodare 'dati' ad un file su disco.

Ho controllato la documentazione NSData. Ci sono funzioni da scrivere in un file, ma non riesco a vedere nulla da aggiungere a un file esistente.

Qualcuno sa come posso aggiungere questi dati? Qualsiasi aiuto molto apprezzato! Nick.

risposta

42

È possibile utilizzare una combinazione di metodi -writeData: e -seekToEndOfFile dalla classe NSFileHandle per scrivere NSData alla fine di un file.

+0

Genius. Giuro che ho esaminato la documentazione NSFileHandle alcune volte prima di scrivere questo post! Deve aver completamente perso queste funzioni! N –

+0

Perché non utilizzare NSMutableData? Ha appendData: metodo! – applefreak

+5

NSMutableData funziona nella RAM: il download di un file di qualsiasi dimensione reale occuperà le risorse. –

-1

C'è un'app di esempio Apple che si scarica in un file, utilizzando NSOutputStream per scrivere sul file. Cerca nel file "GetController.h" dell'app campione chiamata "SimpleURLConnections".

Ecco un URL diretto, anche se non penso che funzionerà se non hai effettuato l'accesso a developer.apple.com.

https://developer.apple.com/library/ios/#samplecode/SimpleURLConnections/Introduction/Intro.html#//apple_ref/doc/uid/DTS40009245

+0

Questa è fondamentalmente una risposta di solo collegamento. – Puppy