在iPhone上写大文件的最快方法是什么?
问题描述:
我正在处理的这个应用程序允许用户拍照并将其保存在本地(通过核心数据的小缩略图图像和文档目录中的全尺寸图像)。我发现将图像文件写入文档目录需要很长时间 - 我的iPhone 3GS需要8秒钟,而我的iPhone 3G和第一代iPod touch可能需要更长的时间。我这样写文件:在iPhone上写大文件的最快方法是什么?
[imgData writeToFile:imagePath atomically:YES];
...有没有更快的方法来做到这一点? iPhone的相机应用程序似乎非常快速地将图像写入文件系统。我可以在线程中完成写作,但是我担心用户可能会在线程结束之前退出我的应用程序。
答
- 密切相关的问题已经被问before,和一般的看法是, iPhone的摄像头应用程序使用未公开的内部API调用。我个人并不确定这是否属实,我认为iPhone应用程序可能会保留在后台,直到图像被保存为止,这是一种尚未在非越狱设备上提供给第三方应用程序的“商品”。
- 也许您应该尝试使用线程来保存图像,但采用更多数据导向的方式,以字节块。这样,如果用户按下主页按钮,则从应用程序委托的
- (void) applicationWillTerminate(UIApplication *)application
方法中,可以完成数据保存到磁盘的过程。尽管如此,这只会为你购买an extra 5 seconds,但它总比没有好。已经给出了类似的建议on saving a text file。希望这会有所帮助,祝你好运!
writeToFile:atomically选项比一次写出小块更好,因为你知道你要么有整个文件,要么后台线程是个好主意。 – 2009-10-31 19:46:52
请考虑利用applicationWillTerminate中额外的5秒。 – zaph 2009-10-31 20:03:53