1 つの NSManagedObject をメイン コンテキストから編集コンテキストにコピーする必要がある状況があります。Stackoverflow で説明されている同様の状況で見たように、ほとんどの人にとっては不必要に思えますが、必要なようです。
私のアプリでは、タブ バーに多くのビューがあり、すべてのビューは他のビューに関連するさまざまな情報を処理します。ユーザーがタブからタブにジャンプして一部のタブに保存されていない変更を残す可能性があるため、複数のMOCが必要だと思いますが、他のタブ/ビューにデータを保存する可能性があるため、それが発生した場合、残りのビューの変更はユーザーの同意なしに保存されます最悪の場合、アプリがクラッシュします。
新しい情報を追加するには、追加の MOC を使用して、両方の MOC の変更をマージすることで解決しましたが、編集はそれほど簡単ではありません。ここStackoverflowでも同様の状況を見ましたが、データモデルが関係にNSMutableSetを使用していないように見えるため、アプリがクラッシュします(多対多の関係ではなく、1対多だと思います)属性であるかのように関係を取得できるように変更できると思います
for (NSString *attr in relationships) {
[cloned setValue:[source valueForKey:attr] forKey:attr];
}
しかし、複製されたオブジェクトと元のオブジェクトの変更をマージする方法がわかりません。メインコンテキストからオブジェクトを削除し、両方のコンテキストをマージして変更をメインコンテキストに保存するだけでよいと思いますが、正しい方法かどうかはわかりません。また、逆の関係が元のオブジェクトと同じように複製されたオブジェクトへの参照を保持するかどうかわからないため、データベースの整合性についても懸念しています。
誰かがこれについて私に教えてもらえますか?