Изключение при извикване на insertInManagedObjectContext:

Създавам Reddit клиент за iOS за учебни цели. Използвам CoreData, който настройвам, като следвам CoreData Basics NSScreencast и Използвах Mogenerator за генериране на файловете на модела.

Добавих точка на прекъсване, за да уловя всички изключения и когато извикам метода на класа insertInManagedObjectContext:, предоставен от Mogenerator, приложението се срива на следния ред:

return [NSEntityDescription insertNewObjectForEntityForName:@"AZRedditAccount" inManagedObjectContext:moc_];

Този ред е в модела, генериран от Mogenerator (_AZRedditAccount). Когато погледнах изгледа на променливите, забелязах странен ред, който наистина не разбирам...

Странна линия в изгледа с променливи

Моля, какво трябва да направя, за да работят нещата?

Редактиране: Ето какво имам в моя .xcdatamodeld файл:

Моят файл .xcdatamodeld

Редактиране 2: Добавих целия проект към Github, мислех, че може да помогне за разрешаването на проблема: https://github.com/AzizLight/Reddit


person Robert Audi    schedule 19.06.2013    source източник
comment
Какво има във вашия модел, стартирахте ли отново MoG след някакви промени, редактирахте ли някой от генерираните класове, какъв е сривът?   -  person Wain    schedule 19.06.2013
comment
MoG генерира 2 класа: _AZRedditAccount и AZRedditAccount. Току-що добавих метод към AZRedditAccount, но той никога не се извиква, тъй като приложението се срива преди. Ако деактивирам точката на прекъсване, която добавих, получавам грешка Thread 2: signal SIGABRT. С точката на прекъсване приложението се срива на линията, показана в моя въпрос.   -  person Robert Audi    schedule 19.06.2013
comment
@AzizLight: Споменавате, че сте задали точка на прекъсване на изключение и там тя спира. И така, какво беше изключението?   -  person Peter Hosey    schedule 19.06.2013
comment
@PeterHosey Всъщност нямам представа, това е добър въпрос. Точката на прекъсване е настроена да улавя всички изключения...   -  person Robert Audi    schedule 19.06.2013
comment
Пробвай да продължиш. Ако изключението все още не се е отпечатало, когато достигнете точката на прекъсване, то трябва да го направи след един или два продължени опита.   -  person Peter Hosey    schedule 19.06.2013
comment
Ето изключението: 'NSInternalInconsistencyException', reason: '+entityForName: could not locate an NSManagedObjectModel for entity name 'AZRedditAccount''   -  person Robert Audi    schedule 19.06.2013
comment

Моят access_control е дефиниран в security.ylm. Възможно ли е да получа текущите роли на страницата в моя код (без да анализирам ylm файла „на ръка“)?

Благодаря

  -  person Peter Hosey    schedule 20.06.2013
comment
@PeterHosey Добавих екранна снимка според вашата заявка. Освен това създадох нов проект, Twitter клиент без потребителски интерфейс (много по-опростен) и получих същото изключение...   -  person Robert Audi    schedule 20.06.2013
comment
Това е странно. Изберете своя .xcdatamodeld в Project Navigator (⌘1) и отворете File Inspector (⌘⌥1). Какви са неговите целеви членове?   -  person Peter Hosey    schedule 20.06.2013
comment
Това е името на проекта, Reddit, и е отметнато...   -  person Robert Audi    schedule 20.06.2013


Отговори (1)


Ако отстранявате грешки, виждате, че вашият ManagedObjectContext (MOC) няма присвоен PersistentStoreCoordinator (PSC) и следователно не е модел. В AZRedditDataModel.m вие инициализирате PSC, но не го запазвате (редове 84-109). Ако няма модел, контекстът не може да създаде никакви обекти, защото няма "план".

person Karl    schedule 20.06.2013