【问题标题】:Fastest way to write a large file on the iPhone?在 iPhone 上写入大文件的最快方法是什么?
【发布时间】:2009-10-31 17:41:27
【问题描述】:

我正在开发的这个应用程序允许用户拍照,并将它们保存在本地(通过 Core Data 的小缩略图,以及文档目录中的全尺寸图像)。不过,我发现将图像文件写入文档目录需要很长时间——在我的 iPhone 3GS 上为 8 秒,在我的 iPhone 3G 和第一代 iPod touch 上甚至更长。我这样写文件:

[imgData writeToFile:imagePath atomically:YES];

...有更快的方法吗? iPhone 的相机应用程序似乎非常快速地将图像写入文件系统。我可以在一个线程中进行写作,但我担心用户可能会在线程完成之前退出我的应用程序。

【问题讨论】:

    标签: iphone file performance writing


    【解决方案1】:
    • 一个密切相关的问题被问到before,一般的看法是 iPhone 的相机应用程序使用未记录的内部 API 调用。我个人不确定这是否属实,我认为 iPhone 应用程序更有可能在后台持续存在直到图像被保存,非越狱设备上的第三方应用程序尚不可用的“商品”。
    • 也许您应该尝试确实使用线程来保存图像,但以更面向数据的方式,以字节块为单位。这样,如果用户按下主页按钮,在来自应用程序委托的 - (void) applicationWillTerminate(UIApplication *)application 方法中,您可以完成将数据保存到磁盘的过程。不过,这只会给你买an extra 5 seconds,但总比没有好。类似的建议已经给出on saving a text file。希望这会有所帮助,祝你好运!

    【讨论】:

    • writeToFile:atomically 选项比一次写出小块要好,因为你知道你要么有一个完整的文件,要么没有......后台线程是个好主意。跨度>
    • 请考虑利用 applicationWillTerminate 中额外的 5 秒。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-01-07
    • 2023-03-21
    • 1970-01-01
    • 2012-04-22
    • 2020-09-01
    • 1970-01-01
    • 2013-01-17
    相关资源
    最近更新 更多