Лучший способ загрузки больших файлов из Интернета на iPhone для записи на диск - PullRequest
1 голос
/ 15 марта 2009

В приложении для iPhone у меня есть код для загрузки файла из Интернета на iPhone и сохранения его на диск.

Проблема в том, что если файл имеет размер большой , то использование памяти приложения резко возрастает, и приложение вылетает.

Я уверен, что просто не делаю это "правильным" способом.

В настоящее время у меня есть следующее:

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

Как я уже говорил, это работает для чего-то вроде изображения, но не для чего-то вроде, скажем, видеоклипа, когда приложение вылетает.

Как правильно сделать это, чтобы предотвратить сбой моего приложения? Возможно, я думал о сокетах, но так как я не занимался программированием сокетов, я не уверен.

Спасибо

Ответы [ 2 ]

5 голосов
/ 15 марта 2009

Вы можете использовать NSURLConnection , который работает асинхронно и доставляет данные в управляемых блоках.

2 голосов
/ 15 марта 2009

Поскольку NSURLDownload недоступно на iPhone, вы можете использовать NSURLConnection и буферизовать некоторые данные в NSMutableData, используя connection:didReceiveData: метод делегата. Эта статья описывает некоторые из них: http://dannyg.com/iapps/Blog/Entries/2009/2/16_The_Joy_in_Discovering_You_Are_an_Idiot.html

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...