将大文件从Web下载到iPhone以写入磁盘的最佳方法

时间:2009-03-15 18:20:19

标签: iphone cocoa-touch

在iPhone应用程序中,我目前拥有将文件从Web下载到iPhone并将其保存到磁盘的代码。

问题是,如果文件是 large ,那么应用程序的内存使用量就会突然崩溃。应用程序崩溃。

我确信我不是以“正确”的方式做到这一点。

目前我有以下内容:

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

正如我所提到的,这适用于类似图片的内容,但不适用于视频剪辑等内容,因为应用程序崩溃了。

这样做的正确方法是防止我的应用崩溃? 我的想法可能是套接字,但由于我没有做太多套接字编程,我不确定。

由于

2 个答案:

答案 0 :(得分:5)

您可以使用异步运行的NSURLConnection并以可管理的块提供数据。

答案 1 :(得分:2)

由于NSURLDownload在iPhone上不可用,您可能希望使用NSURLConnection并使用NSMutableData委托方法缓存connection:didReceiveData:中的某些数据。本文介绍了其中一些内容:http://dannyg.com/iapps/Blog/Entries/2009/2/16_The_Joy_in_Discovering_You_Are_an_Idiot.html