Как часто мне следует сохранять в файл? - PullRequest
1 голос
/ 31 января 2011

Я разрабатываю простой текстовый редактор для iPad.Вместо Core Data приложение просто сохраняет свое содержимое в файле * .txt в папке документа, вызывая функцию writeToFile для NSString.Таким образом, пользователи могут легко передавать файлы через iTunes.Пожалуйста, сообщите мне, если этот подход плох или неэффективен!

Как часто программа должна сохранять свое содержимое в текстовом файле?Руководство по iOS говорит, что приложение должно сохранять свой контент «часто», но оно не дает определенных секунд.

Я где-то читал, что приложение должно сохранять свой контент каждые две секунды.Если это правильно, мне нужно сделать одну функцию и вызвать ее с помощью NSTimer с режимом повторения?

Спасибо!

1 Ответ

3 голосов
/ 31 января 2011

Нет смысла сохранять «часто», если только вы не ожидаете сбоя. iOS дает вам уведомление о возможных ситуациях завершения работы приложения, поэтому я бы просто сэкономил на: 1) получении предупреждения о памяти 2) прекращении 3) переходе на задний план и 4) всякий раз, когда пользователь запрашивает его (будь то с помощью кнопки или отойти от вида редактирования). Любая экономия, кроме этого, на самом деле является пустой тратой ресурсов, так как настоящий редактор никуда не денется, за исключением сбоя.

* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * T Подразделение NSString отлично подходит для открытого текста. Если ваши данные еще не находятся в строке NSString, то есть более эффективные способы их сохранения, чем преобразование в строку NSString и вызов writeToFile (например, выходных потоков). Кроме того, если вы используете очень большие файлы, вам, вероятно, понадобится более инкрементальный подход (то есть сохранение от точки изменения до конца). Вероятность того, что кто-то отредактирует на iPad файл, достаточно большой, чтобы это понадобилось, невелика.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...