Мои базовые данные одно-ко-многим объектам, похоже, теряют свой класс - PullRequest
0 голосов
/ 14 ноября 2011

У меня есть проект, который использует Core Data. Существует сущность, называемая CDGroup, которая имеет отношение один ко многим с сущностью, называемой CDChapter, эта связь называется главами. Они оба имеют соответствующие классы (которые являются подклассами NSManagedObject.)

Когда я получаю объект CDGroup, его класс - CDGroup, что является правильным, однако проблема заключается в том, что если я тогда попытаюсь получить доступ к набору глав этой группы следующим образом:

 NSLog(@"%@",[group.chapters objectAtIndex:0].name);

Я получаю сообщение об ошибке, поскольку полученная глава имеет тип NSManagedObject, а не CDChapter. Я пытался привести главу к правильному классу, но у меня все та же проблема.

Как мне сделать эту работу?

Спасибо

Джо

Ответы [ 2 ]

2 голосов
/ 14 ноября 2011

Вы не можете использовать точечную запись с приведенными объектами.Либо разделите вызов на две строки:

CDChapter *chapter = [[group.chapters allObjects] objectAtIndex:0];
NSLog(@"%@",chapter.name);

Или используйте метод доступа вместо точечной нотации:

NSLog(@"%@",[(CDChapter*)[[group.chapters allObjects] objectAtIndex:0] name]); 
0 голосов
/ 14 ноября 2011

глав относится к NSSet объектов, которые относятся к отношениям.Попробуйте использовать:

((CDChapter*)[[group.chapters allObjects] objectAtIndex:0]).name;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...