0

NSManagedObject からのデータを取り込むメニュー画面があります。この画面が表示されている間、ユーザーはあらゆる種類の値を入力できます。等

私が抱えている問題は、画面への入力に使用される最初の NSManagedObject を変更する必要がないことです。すべてが完了する前にキャンセルすると、元の正しい情報が公平なデータによって破損するため、代わりにユーザーが変更できるコピーが必要です。

ただし、すべてのプロパティが @dynamic であるため、NSManagedObject 内であらゆる種類のコピー メソッドまたはプロセスを実装する際に問題が発生しています。

NSManagedObject 内の copyWithZone メソッドで「自分自身を返す」だけで、すべてが適切にコピーされますか?

4

2 に答える 2

1

必要なのは、同じ NSManagedObject に変更を加えることですが、子 NSManagedObjectContext 内にあります。そうすれば、変更を破棄する必要がある場合、メインのコンテキストやオブジェクトに影響を与えることなく、子コンテキストを破棄できます。この質問を参照してください。

于 2013-03-27T19:21:33.880 に答える
1

カテゴリを使用して、カスタム NSManagedObject にコピー メソッドを追加してみませんか?

NSManagedObject が User の場合、新しいカテゴリ User+copy.h/m を作成します。そこに、すべての個々のフィールドを 1 つずつ単純にコピーする copy メソッドを追加します。

于 2013-03-27T23:01:33.760 に答える