2013-06-21 4 views
0

Я использую Magical Record для базы данных с Xcode. У меня есть два объекта, один из них называется «задача», а другой - «комментарий», я хочу установить отношения, чтобы одна задача имела массив комментариев при запросе задачи, возможно ли, я новичок в волшебная запись, надеюсь, я поставил проблему понятной. Благодарю.Волшебная запись 1 для многих отношений цель c

редактировать: Эй, спасибо за вашу помощь, я использовал этот код, чтобы поместить комментарии в задаче:

NSManagedObjectContext *localContext = [NSManagedObjectContext MR_defaultContext]; 
    TarefaMR *task = [TarefaMR MR_createInContext:localContext]; task. 

//... 

for (NSDictionary *comment in [tarefa objectForKey:@"comments"]) { NSManagedObjectContext *localContext3 = [NSManagedObjectContext MR_defaultContext]; 
      ComentarioMR *comment = [ComentarioMR MR_createInContext:localContext3]; 
     [localContext3 MR_saveToPersistentStoreAndWait]; 
      [task addComentariosObject:comment]; } 

[localContext MR_saveToPersistentStoreAndWait]; 

но теперь я пытаюсь получить доступ к нему, и я не могу показаться, чтобы получить данные из комментарии задачи,

код, который я использовал:

for (TarefaMR *tarefa in [TarefaMR MR_findAll];) { 
NSLog(@"tarefa.comentarios %@",tarefa.comentarios);  } 

Я получаю

tarefa.comentarios Ошибка связи «comentarios» с управляемым объектом : comentarios =;

Я уже пробовал цикл tarefa.comentarios в a, но, похоже, ничего не получил, если я запрашиваю базу данных комментариев, объекты там.

Тогда для Я пытался использовать:

for (ComentarioMR *comment in tarefa.comentarios) { 
    NSLog(@"comment listHeader %@", comment.listHeader); 
    NSLog(@"comment listText %@", comment.listText); } 

, как я могу получить комментарии задачи?

ответ

2

MagicalRecord - это всего лишь обертка вокруг Core Data. Вы определяете свои сущности и их отношения, используя Редактор модели основных данных в Xcode. Вы можете получить доступ к этому инструменту, нажав на файл с именем [имя вашего проекта] .xcdatamodeld в Xcode. Если у вас нет такого файла, вам нужно сначала создать его.

В этом визуальном редакторе вы можете создавать объекты и добавлять к ним атрибуты и отношения. Затем вы можете выбрать одну из своих отношений, перейдите к инспектору в Xcode разделе, значок которого представлен небольшой базой данных и пометьте поле «К-Многим отношениям».

Если вы не знаете, как работают основные данные, я настоятельно рекомендую вам прочитать Core Data Programming Guide или по крайней мере найти несколько руководств, объясняющих, как это работает.

+1

Еще одна вещь: отношения возвращают NSS по умолчанию. Если вы выберете опцию «заказать», вместо нее вы получите NSOrderedSet. Никогда не NSArray. –

+0

thks, теперь у меня есть объект задачи с nset комментариев, теперь я ищу, чтобы узнать, как создавать комментарии, а затем добавить комментарии к задаче, уже есть этот код: NSManagedObjectContext * localContext = [NSManagedObjectContext MR_contextForCurrentThread] ; TarefaMR * task = [TarefaMR MR_createInContext: localContext]; task.nome = @ "sdf" task.comentarios = [localContext MR_saveNestedContexts]; – edounl

+1

Вам это не нужно. Если вы добавляете комментарии к основному потоку, просто используйте [NSManagedObjectContext MR_defaultContext], в противном случае [NSManagedObjectContext MR_context]. Предположим, вы сохранили один из этих двух переменных в переменной «context». Вы бы сделали следующее: Задача * Задача = [Задача MR_createInContext: context]; ... настройка задачи Комментарий * комментарий = [Комментарий MR_createInContext: context]; ...задать атрибуты комментария comment.task = task.' –

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

  • Нет связанных вопросов^_^