神奇的记录1到多个关系的目标c

时间:2013-06-21 14:31:34

标签: ios xcode magicalrecord

我正在使用Magical Record用于Xcode的数据库。 我有两个实体,一个名为'task',另一个名为'comment',我想创建一个关系,这样当我查询任务时,一个任务有一个注释数组,是否有可能,我是魔法新手记录,希望我让问题可以理解。感谢。

编辑: 嘿,感谢您的帮助,我使用此代码将评论放在任务中:

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 =;

我已经尝试在for中循环tarefa.comentarios,但似乎没有得到任何东西,如果我查询评论数据库,对象就在那里。

然后我尝试使用:

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

我怎样才能得到任务的评论?

1 个答案:

答案 0 :(得分:2)

MagicalRecord只是Core Data的包装器。您可以使用Xcode中的Core Data Model Editor定义实体及其关系。您可以通过单击Xco​​de中名为[您的项目名称] .xcdatamodeld的文件来访问此工具。如果您没有此类文件,则需要先创建一个。

在此可视化编辑器中,您可以创建实体并向其添加属性和关系。然后,您可以选择一个关系,转到Xcode中的检查器,其图标由一个小数据库表示,并勾选“To-Many Relationship”框。

如果您不知道Core Data的工作原理,我建议您阅读Core Data Programming Guide或至少找一些解释其工作原理的教程。