2012-01-16 3 views
0

Используя Xcode 4.2, я создал новое приложение, используя шаблон панели вкладок. По какой-то причине этот шаблон не даст вам возможность включить Core Data, так что я должен был добавить его вручную, что я сделал, следуя этим учебным пособием:начальная информация ядра iOS - модель nil

http://www.theappcodeblog.com/2011/06/30/iphone-development-tutorial-add-core-data-to-a-tab-bar-application-and-save-user-data/

Когда я запустить приложение, однако, я получаю эта ошибка:

Cannot create an NSPersistentStoreCoordinator with a nil model 

Как сделать модель не нулевой? Я создал Model.xcdatamodeld и добавил объект (Cat) с атрибутами.

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

ответ

2
  1. Вам необходимо создать экземпляр модели, прежде чем пытаться создать постоянный координатор хранилища. Вы можете сделать это с помощью одного из методов NSManagedObjectModel, например + mergedModelFromBundles:. Обратите внимание, что если вы передадите нуль этому методу, он будет искать основной комплект для моделей, что, вероятно, вы хотите.

  2. Чтобы заполнить магазин некоторыми исходными данными, у вас есть несколько вариантов. Когда ваше приложение запустится, и вы настроите свой стек Core Data, вы, вероятно, будете искать существующий файл хранилища. Если вы его найдете, вы можете просто создать постоянный магазин, добавить его в координатор и продолжить. Если вы его не нашли, одним из вариантов является создание нового хранилища и добавление некоторых объектов программным путем. Другими параметрами являются сохранение предварительно заполненного постоянного файла хранилища в вашем пакете, который вы можете скопировать в папку документов приложения, а затем открыть. Третьим может быть чтение данных по умолчанию с сервера в сети и использование этого для заполнения нового хранилища.

0

Фиксированный с этой линией:

NSURL *modelURL = [[NSBundle mainBundle] URLForResource:@"Model" withExtension:@"momd"]; 

"Модель" была "TEMP".

Я все еще не знаю, как создать 5 объектов.

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