2009-08-10 8 views
17

Je tente de télécharger un fichier volumineux sur l'iPhone et de l'enregistrer sur le disque au fur et à mesure qu'il est téléchargé.Ajouter NSData à un fichier dans Objective C

Idéalement, dans:

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

} 

Je veux ajouter 'données' à un fichier sur le disque.

J'ai vérifié la documentation de NSData. Il y a des fonctions à écrire dans un fichier, mais je ne vois rien à ajouter à un fichier existant.

Est-ce que quelqu'un sait comment je peux ajouter ces données? Toute aide très appréciée! Nick.

Répondre

42

Vous pouvez utiliser une combinaison de méthodes -writeData: et -seekToEndOfFile de la classe NSFileHandle pour écrire NSData à la fin d'un fichier.

+0

Genius. Je jure que j'ai regardé la documentation NSFileHandle quelques fois avant d'écrire ce post! Doit avoir complètement raté ces fonctions! N –

+0

Pourquoi ne pas utiliser NSMutableData? Il a appendData: méthode! – applefreak

+5

NSMutableData fonctionne en RAM - le téléchargement d'un fichier de toute taille réelle prendra vos ressources. –

-1

Il existe une application exemple Apple qui télécharge dans un fichier, en utilisant NSOutputStream pour écrire dans le fichier. Regardez dans le fichier "GetController.h" de l'exemple d'application appelé "SimpleURLConnections".

Voici une URL directe - bien que je ne pense pas que cela fonctionnera si vous n'êtes pas connecté à developer.apple.com.

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

+0

Il s'agit essentiellement d'une réponse de lien seulement. – Puppy