代码之家  ›  专栏  ›  技术社区  ›  kdbdallas

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

  •  1
  • kdbdallas  · 技术社区  · 15 年前

    在一个iPhone应用程序中,我目前有代码可以从网络下载文件到iPhone并将其保存到磁盘上。

    问题是如果文件是 大的 然后,应用程序Skyrocks的内存使用和应用程序崩溃。

    我确信我只是没有按“正确”的方式来做。

    目前我有以下几点:

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

    正如我所提到的,当应用程序崩溃时,这适用于类似图片的东西,但不适用于类似视频剪辑的东西。

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

    谢谢

    2 回复  |  直到 15 年前
        1
  •  5
  •   Chris Lundie    15 年前

    你可以使用 NSURLConnection 它以异步方式运行并以可管理的块形式传递数据。

        2
  •  2
  •   François P.    15 年前

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