2009-08-10 14 views
17

Estoy intentando descargar un archivo grande en el iPhone y guardarlo en el disco mientras se descarga.Adjunte NSData a un archivo en el Objetivo C

Idealmente, en:

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

} 

Quiero añadir 'datos' a un archivo en el disco.

He revisado la documentación de NSData. Hay funciones para escribir en un archivo, pero no puedo ver nada para agregar a un archivo existente.

¿Alguien sabe cómo puedo agregar estos datos? Cualquier ayuda muy apreciada! Nick.

Respuesta

42

Se puede utilizar una combinación de -writeData: y -seekToEndOfFile métodos de NSFileHandle clase para escribir NSData al final de un archivo.

+0

Genius. ¡Juro que revisé la documentación de NSFileHandle varias veces antes de escribir esta publicación! Debe haber perdido completamente estas funciones! N –

+0

¿Por qué no utilizar NSMutableData? Tiene appendData: método! – applefreak

+5

NSMutableData funciona en RAM: la descarga de un archivo de cualquier tamaño real ocupará sus recursos. –

-1

Hay una aplicación de ejemplo de Apple que descarga a un archivo, usando NSOutputStream para escribir en el archivo. Mire en el archivo "GetController.h" de la aplicación de muestra llamada "SimpleURLConnections".

Aquí hay una URL directa, aunque no creo que funcione si no ha iniciado sesión en developer.apple.com.

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

+0

Esto es básicamente una respuesta de solo enlace. – Puppy