Какао-Touch, Основные данные: получение исключения при попытке вставитьNewObjectForEntityForName: inManagedObjectContext: - PullRequest
1 голос
/ 13 октября 2009

Я следую этим инструкциям для реализации хранения основных данных в моем приложении:

У меня есть Model.xcdatamodel, который определяет Something модель. Я использовал XCode для генерации класса для этой модели.
Я импортировал класс в свой файл .m, где я пытаюсь:

Something* s = (Something *)[NSEntityDescription insertNewObjectForEntityForName:@"Something" inManagedObjectContext:managedObjectContext];

Но это вызывает следующую ошибку: 2009-10-13 21:18:11.961 w9a[4840:20b] *** Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: '+entityForName: could not locate an NSManagedObjectModel for entity name 'Something''

Я что-то упустил?

Ответы [ 3 ]

4 голосов
/ 13 октября 2009

Лично я предпочитаю следующий метод:

// With some NSManagedObjectContext *context
NSEntityDescription *desc = [NSEntityDescription entityForName:@"Something" 
                                        inManagedObjectContext:context];
Something *s = [[[Something alloc] initWithEntity:desc
                   insertIntoManagedObjectContext:context] autorelease];

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

1 голос
/ 13 октября 2009

Кажется, что у вас нет NSManageObject с именем "Something" в вашей объектной модели ... вы делаете свою сущность в объектной модели? Я не уверен, что вам также нужно сгенерировать код, но вы можете сделать так, чтобы xcode сделал это для вас автоматически, щелкнув по сущности, сказав новое и выбрав Managed Object из меню там

0 голосов
/ 13 октября 2009

Нашел мою проблему, по какой-то причине NSManagedObjectContext не инициализировался должным образом. Я переписал этот код, следуя инструкциям, и теперь он, кажется, работает.

Спасибо в любом случае:)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...