Самый быстрый способ написать большой файл на iPhone? - PullRequest
0 голосов
/ 31 октября 2009

Это приложение, над которым я работаю, позволяет пользователю делать снимки и сохранять их локально (небольшое миниатюрное изображение с помощью Core Data и полноразмерное изображение в каталоге документов). Я обнаружил, что запись файла изображения в каталог документов занимает много времени - 8 секунд на моем iPhone 3GS, еще дольше на моем iPhone 3G и iPod touch первого поколения. Я пишу файл так:

[imgData writeToFile: imagePath атомарно: ДА];

... есть ли более быстрый способ сделать это? Приложение камеры iPhone, похоже, очень быстро записывает изображения в файловую систему. Я мог бы писать в потоке, но я обеспокоен тем, что пользователь может выйти из моего приложения до завершения потока.

1 Ответ

2 голосов
/ 31 октября 2009
  • Точно связанный вопрос был задан до , и общее мнение таково, что Приложение камеры iPhone использует недокументированные внутренние вызовы API. Лично я не уверен, что это правда, я думаю, что более вероятно, что приложение iPhone может сохраняться в фоновом режиме до тех пор, пока изображение не будет сохранено - «товар», еще не доступный сторонним приложениям на не взломанных устройствах.
  • Возможно, вам действительно следует попытаться использовать поток для сохранения изображения, но более ориентированным на данные способом в виде байтов. Таким образом, если пользователь нажмет кнопку home в вашем методе - (void) applicationWillTerminate(UIApplication *)application от делегата приложения, вы можете завершить процесс сохранения данных на диск. Это только даст вам дополнительные 5 секунд , но это лучше, чем ничего. Аналогичные рекомендации были даны при сохранении текстового файла . Надеюсь, это поможет, удачи!
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...