0

現在、モデルには 2 つのエンティティがあります。モジュールとレベル。1 対多の関係があります。たとえば、1 つのレベルに多数のモジュールを含めることができます。モジュールに特定の年があると言えるように、データを相互に関連付けるようにデータを挿入するにはどうすればよいですか。モジュールを削除すると年も削除されるように、これが必要です。

モジュール<<---->レベル

オブジェクトを個別に追加するだけで問題なく動作しますが、コード アプリケーションのクラッシュの最後の行を追加すると、エンティティ モジュールは、モジュール側の関係の名前であるキー level_number に準拠したキー値コーディングではないことが示されます。

NSManagedObject *newModule;
newModule = [NSEntityDescription
              insertNewObjectForEntityForName:@"Module"
              inManagedObjectContext:context];

[newModule setValue:textModuelTitle.text forKey:@"name"];
[newModule setValue:value forKey:@"credit"];

    NSManagedObject *newLevel;
    newLevel = [NSEntityDescription
                 insertNewObjectForEntityForName:@"Level"
                 inManagedObjectContext:context];
       [newLevel setValue:year forKey:@"value"];

    [[newModule mutableSetValueForKey:@"level_number"] addObject:newLevel];
4

2 に答える 2

2

1 対多の関係がある場合は、一方の側から値を設定しCore Data、もう一方の側を処理します。

レベルはモジュールと 1 対 1 の関係にあるためです。モジュールをレベルに設定し、コンテキストを保存します。

于 2013-05-19T02:54:26.760 に答える
0

クラッシュ メッセージ全体を投稿していただけますか。

関係が正しく設定されていることを再確認してください。シミュレーターが古い coreData 構造を保持している場合があります。そこからアプリケーションを削除して、再実行してみてください。

于 2013-05-19T05:08:44.870 に答える