#ios
#iOS
Вопрос:
Мое понимание того, что происходит с данными приложения в каждой из папок приложений, изложено ниже, может кто-нибудь подтвердить, что я прав, а если нет, где найти документацию Apple по этому вопросу. У меня возникли проблемы с поиском достаточной информации для проверки.
Мое понимание ограничено тем, что происходит с данными, когда пользователь обновляет свою iOS. Являются ли данные в папках, резервные копии которых хранятся в iTunes / iCloud, единственными безопасными местами для хранения данных? Что означает, что данные в /Tmp и / Library/ Caches не будут там, как только пользователь обновит свою iOS?
/ Документы:
- iOS будет создавать резервные копии данных через iTunes / iCloud? ДА
- iOS гарантирует восстановление данных после выпуска новой версии приложения? ДА
- iOS гарантирует восстановление данных после обновления iOS? ДА
/ Библиотека:
- iOS будет создавать резервные копии данных через iTunes / iCloud? ДА
- iOS гарантирует восстановление данных после выпуска новой версии приложения? ДА
- iOS гарантирует восстановление данных после обновления iOS? ДА
/Library /Caches:
- iOS будет создавать резервные копии данных через iTunes / iCloud? НЕТ
- iOS гарантирует восстановление данных после выпуска новой версии приложения? ДА
- iOS гарантирует восстановление данных после обновления iOS? НЕТ
/ Библиотека / Настройки:
- iOS будет создавать резервные копии данных через iTunes / iCloud? ДА
- iOS гарантирует восстановление данных после выпуска новой версии приложения? ДА
- iOS гарантирует восстановление данных после обновления iOS? ДА
/Tmp:
- iOS будет создавать резервные копии данных через iTunes / iCloud? НЕТ
- iOS гарантирует восстановление данных после выпуска новой версии приложения? НЕТ
- iOS гарантирует восстановление данных после обновления iOS? НЕТ
Комментарии:
1. и ваш вопрос о программировании?
2. если бы мне пришлось догадаться, что это «Правильно ли это?»
Ответ №1:
В целом это правильно, однако после iOS5 содержимое библиотеки / кэшей может быть удалено в любое время, если ОС решит, что ей не хватает места на диске, поэтому хранить что-либо там в долгосрочной перспективе — плохая идея.
Если вы хотите постоянно хранить данные кэша на устройстве, но не создавать их резервную копию в iCloud, существует новое свойство с именем NSURLIsExcludedFromBackupKey, которое можно установить для файла или папки, расположенных в любом месте библиотеки или документов, что предотвратит их резервное копирование в iCloud.
Я написал простую библиотеку, которая управляет ключом NSURLIsExcludedFromBackupKey для вас и предоставляет константы для всех этих папок с более значимыми именами, чтобы было легче запомнить, какие из них использовать для какой цели:
Комментарии:
1. При обновлении приложения с комментариями все абсолютные пути изменяются, поскольку приложение перемещается в другую папку.
2. Да, это правда. Вы не должны сохранять эти пути в файле или в NSUserDefaults, вы всегда должны снова вызывать метод для повторного создания пути, если вам нужно получить доступ к ранее сохраненному файлу.