2013-10-11 6 views
2

Мне интересно, будет ли кто-нибудь быть любезным, чтобы помочь мне с основной проблемой, связанной с данными. Я создаю приложение для iPhone, и теперь мне нужно создать отношения от одного объекта к другому.Основные данные: создание отношений

Я новичок в основных данных, объектив c и, откровенно говоря, весь процесс разработки приложений, поэтому, если у вас есть ответ, пожалуйста, обратите внимание, что мне может быть трудно понять :-(Я провел очень долгое сканирование веб и чтение документации Apple, и просто не может получить мою голову вокруг этой проблемы.


Я пытаюсь вставить новые данные в сущность и сделать отношения к существующему объекту в другой сущности. у меня есть настроить мою модель данных, создать мои NSManagedObjectSubClasses и вставить и управлять данными в единый объект, я просто не могу понять, как использовать отношения.

Например, предположим, что у меня есть Объект с именем Article и еще один по имени Author. У меня уже есть список авторов. Когда я создаю новую статью, как связать эту новую статью с уже существующим автором с отношениями?

Какие строки кода необходимо создать?

Какая информация мне нужна для создания этой ссылки?

У меня такое чувство, что проблема связана с типом данных, с которыми я пытаюсь создать отношения. NSIndexPath, NSManagedObject и NSMutableSet кажутся неправильными.

Любая помощь будет очень признательна, спасибо.

ответ

0

Вы создаете отношения как часть проектирования объектов, а не в строках кода. Предполагая, что вы хотите иметь статью с несколькими авторами, вам нужно взглянуть на отношения типа «многие-ко-многим». (У автора должно быть отношение «ко многим», называемое статьями, а статья будет иметь отношение «многие», называемое авторами, которое было обратным.)

Тогда вы могли бы создать подклассы Author и Article, а код для связывания их объектов был бы чем-то как: [myAuthor addArticlesObject:myArticle];.

Например:

Author *myAuthor = [NSEntityDescription insertNewObjectForEntityForName:@"Author" 
               inManagedObjectContext:self.managedObjectContext]; 
myAuthor.name = @"Phillip Mills"; 
Article *myArticle = [NSEntityDescription insertNewObjectForEntityForName:@"Article" 
                inManagedObjectContext:self.managedObjectContext]; 
myArticle.title = @"Sample of linking core data entities"; 

NSError *error; 
[myAuthor addArticlesObject:myArticle]; 
if (![self.managedObjectContext save:&error]) 
{ 
    NSLog(@"Database update failed: %@", error); 
} 
+0

Спасибо за ответ так быстро. У меня есть аналогичная настройка того, что вы описали. Часть, которую я не могу понять, это раздел «myArticle»? Что это? вы могли бы сломать свою строку кода для меня, пожалуйста? –

+0

'myArticle' и' myAuthor' считаются объектами, созданными с использованием метода 'insertNewObjectForEntityForesNSE: inManagedObjectContext:' 'NSEntityDescription'. Если связь была установлена ​​правильно, 'addArticlesObject' должен существовать в классе' Author'. –

+0

Еще раз спасибо, я думаю, что добираюсь туда, но теперь я получаю сообщение об ошибке: «Неизвестный метод класса для selector addArticlesObject:» «Вы знаете, почему это может произойти? –

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