2009-03-15 6 views
1

Dans une application iPhone, j'ai actuellement un code pour télécharger un fichier du Web sur l'iPhone et l'enregistrer sur le disque.Meilleure façon de télécharger des fichiers volumineux du Web vers l'iPhone pour les écrire sur le disque

Le problème est que si le fichier est grand alors l'utilisation de la mémoire de l'application monte en flèche et l'application se bloque. Je suis sûr que je ne fais pas la bonne façon.

Actuellement, je donne les résultats suivants:

mediaData = [[NSData alloc] initWithContentsOfURL:[NSURL URLWithString:path]]; 
[mediaData writeToFile:fullPath atomically:YES]; 
[mediaData release]; 

Comme je l'ai mentionné cela fonctionne pour quelque chose comme une image, mais pas pour quelque chose comme dire un clip vidéo, comme les accidents de l'application.

Quelle est la bonne façon de procéder pour éviter que mon application ne plante? Ma pensée était peut-être des prises, mais comme je n'ai pas fait beaucoup de programmation de socket, je ne suis pas sûr.

Merci

Répondre

5

Vous pouvez utiliser NSURLConnection qui fonctionne de manière asynchrone et fournit des données en morceaux maniables.

+2

Vous aussi utiliser une API comme NSFileHandle pour écrire les données sur le disque comme il vient Bien sûr, pour un clip vidéo, seriez-vous pas mieux d'utiliser le film le support de téléchargement intégré du lecteur? –

+0

Non, car il ne vous permettra pas d'enregistrer la vidéo pour une utilisation future – kdbdallas

+0

NSURLConnection avec NSFileHandle était la réponse. NSURLConnection seul est toujours tombé en panne. – kdbdallas

Questions connexes