Fastest way to write a large file on the iPhone?

随声附和 提交于 2019-12-25 01:15:48

问题


This app i'm working on allows the user to take pictures, and saves them locally (a small thumbnail image via Core Data, and the full-size image in the documents directory). I'm finding that writing the image file to the documents directory takes a long time, though -- 8 seconds on my iPhone 3GS, even longer on my iPhone 3G and first-gen iPod touch. I write the file this way:

[imgData writeToFile:imagePath atomically:YES];

... is there a faster way to do this? The iPhone's camera app seems to write the images to the filesystem very quickly. I could do the writing in a thread, but i'm concerned about the user possibly quitting my app before the thread finishes.


回答1:


  • A closely related question has been asked before, and the general opinion is that the iPhone's camera app uses undocumented internal API calls. I'm personally not sure if this is true, I think it's more likely that the iPhone app can persist in the background until the image is saved, a "commodity" not yet available to third party apps on non-jailbroken devices.
  • Perhaps you should try indeed using a thread to save your image, but in a more data-oriented way, in byte chunks. This way, if the user presses the home button, in your - (void) applicationWillTerminate(UIApplication *)application method from the app's delegate, you could finalize the process of data saving to disk. This will only buy you an extra 5 seconds, though, but it's better than nothing at all. Similar recommendations have been given on saving a text file. Hope this helps, best of luck!


来源:https://stackoverflow.com/questions/1655057/fastest-way-to-write-a-large-file-on-the-iphone

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!