2015-11-17 3 views
0

Если я сохраняю файл в каталоге документов в папке, как долго он остается на диске? Forever (в этом случае мне нужно будет удалить его вручную, если я этого захочу) или он удаляется каждый раз, когда приложение закрывается?Как долго файлы остаются в каталоге документов (iOS)

+2

файлы в документы остаются каталог до тех пор, пока пользователь не удалит приложение (или удалить файл) – Paulw11

ответ

3

Файлы в каталоге documents сохраняются до тех пор, пока пользователь не удалит приложение, не сбрасывает свое устройство или не удаляет файлы в коде. Также обратите внимание, однако, что содержимое каталога documents поддерживается iTunes, поэтому может сохраняться дольше, чем вы ожидали в противном случае.

С другой стороны, каталог tmp не является таким постоянным, и его содержимое не обязательно сможет пережить перезапуск приложения (они также не были скопированы в iTunes), поэтому вы можете использовать это, если не хотите, чтобы постоянный место хранения. /Library/Caches/ похож на то, что он не архивируется, но он настойчив. Из документов, касающихся tmp:

Система будет периодически очищать эти файлы [в папке tmp], когда ваше приложение не работает; поэтому вы не можете полагаться на эти файлы, которые сохраняются после завершения вашего приложения.

В принципе, если вы хотите что-то хранить в течение короткого периода времени, и не имеет значения, удалено ли оно ОС, используйте tmp. Если вы хотите что-то, что будет продолжаться, запуск приложений и многое другое, но все равно не будет скопирован через iTunes, используйте папку cache в библиотеке. Это вы хотите что-то, что сохраняется и скопировано, используйте documents.

дополнительную информацию на основе комментариев

Если изображения должны исчезнуть, когда приложение запустится вновь, то вы должны использовать tmp. Но учтите, что каталог tmp не может быть очищен при перезагрузке приложения. Несомненно, изображения будут по-прежнему в следующий раз при загрузке приложения. Это действительно игра. Если жизненно убить изображения затем вытрите их вручную где-нибудь подходящее:

+0

спасибо Gordonium, отличный ответ! Follow Up: у меня есть некоторые загруженные изображения, которые я хочу «кэшировать»/хранить на диске на время работы приложения. Если приложение перезагружается, эти изображения должны исчезнуть. Считаете ли вы, что папка tmp/лучше или библиотека/кеши/одна? –

+1

@ west123 Я бы сказал, что 'tmp' более подходит, если изображения не должны пережить перезапуск приложения, но вам, возможно, придется их вручную стереть вручную, если ОС может их удалить или не удалить. Чтобы объяснить, я обновил свой ответ для вас. – Gordonium

+0

Еще раз спасибо! Вот что говорит Apple: «В iOS 5.0 и более поздних версиях система может удалить каталог Caches в редких случаях, когда система очень низка на диске. Это никогда не произойдет во время работы приложения». Несмотря на отсутствие гарантий для NSCache(), здесь Apple гарантирует, что каталог Cache не будет удален, пока приложение будет запущено. В принципе, у меня есть гарантия, что обе эти каталоги не будут удалены, пока я работаю. Если я вручную удалю выбранный каталог при запуске приложения, не могли бы вы согласиться с тем, что выбор папки здесь больше не имеет значения? –

Смежные вопросы