Как создать волшебную папку/пакет .xcdatamodeld?

Недавно мне удалось (случайно, не просить) удалить файлы и классы данных Data Data Data Data. И я был полностью и совершенно неспособен создать файлы снова, чтобы быть точно такими же, как они были бы в недавно запущенном проекте, где эти файлы будут автоматически подготовлены XCode.

В новом проекте файлы выглядят следующим образом:

alt text

пока все, что мне удалось создать, было:

alt text

Я уже упоминал, что приложение больше не работает? Он разбился, сказав, что модель не должна быть nil. Проблема была решена путем запуска нового проекта с тем же именем и перетаскивания файлов на старый - не самое элегантное решение, я полагаю.

Я понял, что есть вещи о Core Data, которые я все еще не совсем понимаю, очевидно.

Пожалуйста, просветите меня - какая магия за папкой .xcdatamodeld? Почему функция Foo.xcdatamodel имеет зеленый флажок? Нужно ли компилировать или обрабатывать datamodel каким-то образом?

Спасибо, много парней!!!

Ответы

Ответ 1

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

Чтобы создать модельный комплект, вы выбираете одну модель, откройте меню Design в главном меню и выберите Data Model и Add Model Version.

Ваше приложение терпит крах, потому что ожидает набор данных с типом momd.

NSString *modelPath = [[NSBundle mainBundle] pathForResource:@"foobar" ofType:@"momd"];

Если у вас есть только один Datamodel, он не компилируется в файл "momd". Но я забыл о фактическом расширении.


В Xcode4 Add Model Version можно найти в главном меню Editor.

Ответ 2

Во время моего развития я не смог найти объекты, которые я добавил позже. Что сработало для меня:

Удалите приложение каждый раз, когда вы меняете модель данных!

Модель данных кэшируется базовыми данными между установками, чтобы убедиться, что целостность остается в такте. Удалите приложение из симулятора /iPhone, чтобы проверить свои изменения.

PS: Кто-нибудь знает, как это сделать автоматически?