0

我在Xcode 中使用Magical Record作为数据库。我有两个实体,一个名为“任务”,另一个名为“评论”,我想建立关系,以便在我查询任务时一个任务有一系列评论,有可能吗,我是魔法新手记录一下,希望我能理解这个问题。谢谢。

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

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.commentarios 托管对象上的关系 'commentarios' 错误:commentarios = ;

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

然后我尝试使用:

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

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

4

1 回答 1

2

MagicalRecord 只是核心数据的一个包装器。您可以使用 Xcode 中的核心数据模型编辑器定义实体及其关系。您可以通过单击 Xcode 中名为 [您的项目名称].xcdatamodeld 的文件来访问此工具。如果您没有此类文件,则需要先创建一个。

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

如果你不知道 Core Data 是如何工作的,我建议你阅读Core Data Programming Guide或者至少找到一些解释它是如何工作的教程。

于 2013-06-21T14:34:40.220 回答