2016-01-22 1 views
0

Мое приложение загружает информацию пользователя из моего бэкэнд, а затем пытается сохранить все с использованием основных данных. У меня есть пара сущностей и некоторые отношения ко многим в моей модели данных. Мой вопрос: если данные меняются в моей базе данных, и мне нужно изменить отношения между сущностями, например add/delete, мне нужно выполнить тяжелую миграцию? Я много раз искал и много читал в Интернете, кажется, что легкая миграция не собирается этого делать, потому что я не добавляю вручную атрибуты/сущности. И если мне действительно нужно сделать тяжелую миграцию, как бы это сделать? На самом деле не так уж много можно найти о тяжелой миграции там.Нужно ли выполнять интенсивную миграцию для изменения отношений в основных данных?

Я также думал о просто удалении предыдущих моделей данных каждый раз, когда я делаю изменения, а затем сохраняю всю новую сущность. Я не уверен, что это хороший подход, есть ли лучший способ кэшировать/хранить данные, которые извлекаются из бэкэнд?

+0

Могу ли я спросить (глупый вопрос), что вы имеете в виду с внутреннего интерфейса, как правило, CoreData обрабатывает по сама связь между хранилищем данных (база данных, xml, файл) и представлением, поэтому, прежде чем делать больше комментариев, мне нужно понять, не являетесь ли вы дублирующими функциями (например, с использованием основных данных и в то же время с использованием созданного вручную SQL-файла) , – JuValencia

+0

Я использую Parse в качестве моего бэкэнд, поэтому в основном каждый раз, когда я делал запрос в Parse и получал нужные мне данные, я хочу сохранить его с использованием Core Data таким образом, что мне не нужно делать произвольные запросы каждый раз, когда страница представил. – jackson

+1

Вы хотите изменить модель данных или изменить данные? – Willeke

ответ

0

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

Вот шаги:

  1. Выберите Model.xcdatamodeld.
  2. Редактор кликов> Добавить модель версии ....
  3. Нажмите «Готово», чтобы принять модель 2 в качестве имени версии.
  4. Выберите Model.xcdatamodeld.
  5. Нажмите «Просмотр»> «Утилиты»> «Показать инспектор файлов» (или нажмите «Option» + «+ 1»).
  6. Установка текущей модели Версия для Model 2.

Здесь связь с объясняет этот процесс: Learning CoreData for iOS: Managed Object Model Migration

0

Если вы не изменяете модель, вам необходимо no mig.

То есть «миграция» в том смысле, что Apple использует его, то есть только в отношении данных модель. Что вы имеете в виду, возможно, это «обновление» данных.

Вы делаете обновления данных обычным способом: извлекаете объекты, которые хотите изменить, изменять их (например, устанавливать разные объекты как отношения), сохранять.

+0

Он продолжает бросать ошибку: несовместимость с исходным хранилищем данных (что-то в этом роде), я не изменил модель данных, так это потому, что я не подклассифицировал NSManagedObject для атрибутов? – jackson

+0

Я уверен, что вы * сделали * изменение модели данных. Самый простой способ - удалить приложение с устройства/симулятора и запустить его снова. – Mundi

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