AとBと呼ぶ2つのエンティティがあります。これらは、両方向にTo-Many関係で構成されているため、A.myBsとB.myAsはどちらもNSSetです。
これが私の奇妙な問題です。
AエンティティにBを追加するときは、次のようにmutableSetValueForKeyを使用して追加します。
NSMutableSet *myBSet = [myA mutableSetValueForKey:@"myBs"];
[myBSet addObject:theBtoAdd];
これにより、theBtoAddがAエンティティに追加されますが、逆の関係は追加されません。Core Dataコンテキスト保存はエラーを発生させませんが、私のAオブジェクトにはB逆セットがありません。アプリケーションを終了すると、部分的な関係も保存されません。
ここに奇妙な部分があります...コードを切り替えて反対のことをすると(特定のアプリケーションでこれを行うのが難しい理由があります)-次のようにBをAに追加する代わりにAをBに追加します:
NSMutableSet *myASet = [myB mutableSetValueForKey:@"myAs"];
[myASet addObject:theAtoAdd];
それはうまく機能します。ちなみに、私には他にもたくさんの関係があります。これだけではありません。
他のいくつかのこと:1)私のコアデータオブジェクトモデルは良さそうですが、これはXcode 4で追加した最初の新しいエンティティです2)カスタムNSManagedObjectsを確認し、再確認し、ブラインドになりましたが、見た目は罰金-宣言された動的、NSSet、競合するセッター/ゲッターなし...など。
ヘルプやデバッグの提案をいただければ幸いです。ありがとうございました!