Подтвердить что ты не робот

Где я должен хранить SQLite DB для моего iPhone-приложения?

У меня есть несколько приложений для iOS на рынке, и во всех них у меня есть небольшой файл базы данных SQLite, подключенный к приложению, чтобы предоставить пользователю мои данные. После установки пользователь настраивает этот БД, изменяя определенные параметры.

До сих пор все эти приложения хранят БД в NSDocumentsDirectory. После отправки моего последнего обновления он был отклонен для хранения данных в неправильном месте. Для отклоненных приложений я изменил местоположение хранилища на NSCachesDirectory. Я теперь боюсь, что кеш будет очищен и стирает пользовательские настройки. Приложение все равно будет функционировать, БД будет воссоздаваться, но все измененные таблицы будут reset, тем самым нарушая пользователей.

Где должен храниться этот тип файла базы данных? Был ли я прав, чтобы поместить его в директорию Docs? Согласно Apple, Docs dir предназначен для "Критических данных", который представляет собой либо данные, созданные пользователем, либо данные, необходимые для правильной работы приложения. Я чувствую, что он подпадает под эту категорию, сохраняя мои настройки пользователей, является правильной операцией, но кто хочет ждать апелляции?

4b9b3361

Ответ 1

Руководство по программированию файловой системы Apple для iOS описывает путь (application_home)/Library как место для "создания собственных подкаталогов для файлов, которые вы хотите создать резервную копию, но не подверженных пользователю". Путь (application_home)/Documents описывается как "содержимое этого каталога может быть доступно пользователю через совместное использование файлов".

Ваши базы данных не похожи на документы, они звучат как частные кеши, о которых пользователи не должны знать. Я рекомендую вам создать каталог, например (application_home)/Library/Database, и сохранить там файлы. Описанный вами путь кэширования не похож на лучший вариант для меня.

Вы должны действительно просмотреть весь руководство по программированию файловой системы для iOS перед отправкой другого приложения.

Ответ 2

Если ваша база данных действительно содержит контент, созданный пользователями, то каталог документов является правильным местом.

Однако вы отмечаете, что вы сохраняете "настройки своих пользователей"... Если данные, которые вы сохраняете, более схожи с настройками или настройками, тогда они должны находиться в подсистеме "По умолчанию". См. Документацию для NSUserDefaults.