0

XcodeでデータベースにMagical Recordを使用しています。私は 2 つのエンティティを持っています。1 つは「タスク」という名前で、もう 1 つは「コメント」です。タスクを照会するときに 1 つのタスクにコメントの配列があるように関係を作りたいのですが、それは可能ですか。記録します。問題が理解できるようになったことを願っています。ありがとう。

編集:ねえ、助けてくれてありがとう、私はこのコードを使ってコメントをタスクに入れました:

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); }

タスクのコメントを取得するにはどうすればよいですか?

4

1 に答える 1

2

MagicalRecord は Core Data の単なるラッパーです。Xcode の Core Data Model Editor を使用して、エンティティとその関係を定義します。このツールにアクセスするには、Xcode で [プロジェクト名].xcdatamodeld という名前のファイルをクリックします。そのようなファイルがない場合は、最初に作成する必要があります。

このビジュアル エディタでは、エンティティを作成し、それらに属性と関係を追加できます。次に、リレーションシップの 1 つを選択し、Xcode のインスペクターに移動して、アイコンが小さなデータベースで表されるセクションに移動し、[To-Many Relationship] ボックスにチェックマークを付けます。

Core Data の仕組みがわからない場合は、Core Data プログラミング ガイドを読むか、少なくともその仕組みを説明するチュートリアルを見つけることをお勧めします。

于 2013-06-21T14:34:40.220 に答える