Как изменить модель текущей версии xcdatamodeld в "Source"

Я разрабатываю приложение для iOS с использованием coredata.

Я знаю, как изменить модель текущей версии xcdatamodeld в "XCode". Но я могу изменить это в программе?

если можете сделать это, пожалуйста, научите меня.

1 ответ

Решение

Нет, вы не можете изменить текущую версию. Но вам тоже не нужно.

  1. Вы можете создать модель программно, как предложено @Adam.
  2. Вы можете выбрать, какую модель вы хотите использовать с -initWithContentsOfURL: метод на NSManagedObjectModel,

Загрузка текущей версии - это просто удобство миграции и не требуется.

Обновить

Спасибо за ответ. И у меня есть еда. если я хочу выбрать текущую версию в некоторых случаях, скопируйте оригинальный файл xcdatamodeld и поместите два файла xcdatamodeld в проект, исходный xcdatamodeld установил текущую версию, а скопированный xcdatamodeld установил другую версию, и я выбрал эти файлы методом initWithContentsOfURL. Это возможно?

Это возможно, но не нужно. Когда вы указываете -initWithContentsOfURL на ваш momd он выберет самую последнюю версию модели автоматически. Если вы указываете на mom файл будет загружать одну модель. Так как mom файлы находятся внутри momd каталог, вы можете сохранить только одну версионную модель, а затем загрузить любую версию этой модели, которую вы хотите. Я делаю это довольно часто, когда делаю всю миграцию вручную.

mom это xcdatamodel файл скомпилирован. momd каталог скомпилированных моделей и является результатом компиляции xcdatamodeld расслоение (он же папка).

Другие вопросы по тегам