Как изменить модель текущей версии xcdatamodeld в "Source"
Я разрабатываю приложение для iOS с использованием coredata.
Я знаю, как изменить модель текущей версии xcdatamodeld в "XCode". Но я могу изменить это в программе?
если можете сделать это, пожалуйста, научите меня.
1 ответ
Нет, вы не можете изменить текущую версию. Но вам тоже не нужно.
- Вы можете создать модель программно, как предложено @Adam.
- Вы можете выбрать, какую модель вы хотите использовать с
-initWithContentsOfURL:
метод наNSManagedObjectModel
,
Загрузка текущей версии - это просто удобство миграции и не требуется.
Обновить
Спасибо за ответ. И у меня есть еда. если я хочу выбрать текущую версию в некоторых случаях, скопируйте оригинальный файл xcdatamodeld и поместите два файла xcdatamodeld в проект, исходный xcdatamodeld установил текущую версию, а скопированный xcdatamodeld установил другую версию, и я выбрал эти файлы методом initWithContentsOfURL. Это возможно?
Это возможно, но не нужно. Когда вы указываете -initWithContentsOfURL
на ваш momd
он выберет самую последнюю версию модели автоматически. Если вы указываете на mom
файл будет загружать одну модель. Так как mom
файлы находятся внутри momd
каталог, вы можете сохранить только одну версионную модель, а затем загрузить любую версию этой модели, которую вы хотите. Я делаю это довольно часто, когда делаю всю миграцию вручную.
mom
это xcdatamodel
файл скомпилирован. momd
каталог скомпилированных моделей и является результатом компиляции xcdatamodeld
расслоение (он же папка).