приложение для iPhone с CoreData - PullRequest
       26

приложение для iPhone с CoreData

2 голосов
/ 15 декабря 2010

Я планирую создать приложение для iphone, которое использует CoreData.Возможно, позже будут добавлены улучшения по мере появления новых версий приложения.Мой вопросПри использовании CoreData какие факторы следует учитывать, чтобы гарантировать, что если пользователь обновляет версию, его предыдущие данные остаются неизменными?Как я слышал, мы должны оставить имя файла.sqlite таким же.Какие еще факторы следует учитывать при выпуске приложений Core Data?

Спасибо.

Ответы [ 2 ]

2 голосов
/ 15 декабря 2010

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

В идеале это Легкая миграция , где незначительное преобразование из старой модели данных в новую выполняется автоматически.Как отмечено в документе, он может позаботиться о себе, если ваши изменения:

  • Простое добавление нового атрибута
  • Необязательный атрибут становится необязательным
  • Необязательный атрибут становится необязательным, и задает значение по умолчанию

Переименование объекта или атрибута также легко и почти автоматически.

Все, что за этим - новые или удаленные сущности, новые или удаленные или измененные отношения - является более опасным.Это не невероятно сложно, но это определенно больше работы, с большим количеством места для неудачи.

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

Стоит рассмотреть.

1 голос
/ 15 декабря 2010

Одна вещь, которую мы сделали, - это управление двумя отдельными базовыми базами данных. Во-первых, база данных основных данных «только для чтения», которая поставляется с обновлениями приложения (при условии, что вы хотите отправлять данные вместе с приложением, если нет, то не беспокойтесь об этой части). Во-вторых, локальная базовая база данных (хранилище данных), которая хранится на телефоне, которая первоначально заполняется данными из первой, а затем добавляется пользователем или обновлениями с сервера, которым вы управляете. Это второе основное хранилище данных может оставаться постоянным между обновлениями.

Для последующего изменения и обновления у вас есть два варианта. Вы можете добавить дополнительные функции в новое базовое хранилище данных, если вам не нужно получать новые данные одновременно со старыми данными. Другой вариант - использовать основные средства переноса данных Apple, о которых вы можете прочитать подробнее о здесь .

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

Наконец, если вы планируете значительно добавить / изменить свое основное хранилище данных, я бы посоветовал изучить SQLite. Это легче изменить с помощью обновлений (по моему опыту), чем перенос существующего основного хранилища данных в новую схему, особенно если схема часто меняется.

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