core-data を使用して、iOS で奇妙なバグを観察しています。基本的に、私のセットアップは次のとおりです- 2 つの NSManagedObjectContexts がtempContext
あり、mainContext
. tempContext
エンティティを作成および編集するための一時的な「スクラッチパッド」として使用し、それらを保存する場合は、に移動しmainContext
て保存します。mainContext
は の親ではないことに注意してくださいtempContext
。
移動は次のように行われます-
[1] newEntity.property1 = @"SomeProperty";
newEntity.managedObjectContext // this is tempContext currently
[2] saveEntityInTempContext
[3] newEntity = (Entity *)[mainContext objectWithID:newEntity.objectID];
[4] [mainContext insertObject:newEntity];
さて、insert[4] の後、 にチェックを入れるnewEntity.property1
と に設定されていnil
ます。しかし、[3]の次にプロパティを確認し、[4]の後にプロパティを確認すると、正しく「SomeProperty」と表示されます。ここでフォールトを強制することでどのように違いが生じるのかわかりません。
私の目標は、エンティティをあるコンテキストから別のコンテキストに移動することです。