Базовые данные с предварительно заполненными stati c и динамическими пользовательскими данными c - PullRequest
0 голосов
/ 28 апреля 2020

В моем проекте предварительно заполнены данные в Core Data, ie. У меня есть файл sqlite, который копируется в папку пользователя при первом запуске, однако у меня также есть пользовательские данные, которые пользователь генерирует, в этом случае я могу использовать одну модель данных? Я знаю, что могу создать две модели: одну c и одну для пользователя, но мне просто интересно, есть ли лучший способ. Спасибо!

обновление: меня беспокоит то, что это работает для первого выпуска, в последующих выпусках, если мне нужно будет обновить данные stati c, это будет новый файл sqlite, который будет скопирован в папку пользователя, которая будет перезаписать существующие данные пользователя.

1 Ответ

0 голосов
/ 30 апреля 2020
  1. Вопрос: [...] можно ли использовать одну модель данных?

Да. Существует концепция Конфигурации с базовыми моделями данных. Вы можете узнать об этом здесь: NSManagedObjectModel . Это позволяет разделить одну модель данных на несколько частей. Для случая использования, описанного в OP, вы хотите иметь две части или конфигурации: «StaticData» и «UserData». «StaticData» содержит сущности и данные, которые могут изменяться только при обновлениях приложения ( новые выпуски ). «UserData» содержит пользовательские данные. Вам необходимо соответствующим образом спроектировать данные и внешние ключи таким образом, чтобы объекты обоих наборов данных были «хорошо связаны» в течение всего срока службы приложения. (Если вы не можете гарантировать это от начала до конца, вам необходимо разработать дополнительную обработку переноса данных для каждого выпуска).

Вопрос / вариант использования: обновлять только данные о состоянии c, не перезаписывать пользовательские данные.

Каждая «Конфигурация» (см. 1.) будет иметь постоянное хранилище данных ядра ( SQLite файл ) для собственного. Для указанного варианта использования файл с пользовательскими данными не должен быть исключен из резервной копии, но данные stati c должны быть исключены из резервной копии. Вы можете узнать о том, как исключить файлы и каталоги из резервных копий здесь: NSURLIsExcludedFromBackupKey . После нового выпуска пустые пользовательские данные будут перезаписаны пользовательскими данными из резервной копии.

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