0

私のアプリは、必ずしも保存する必要のないオブジェクトをマネージド オブジェクト コンテキストに挿入することがあります。たとえば、「エンティティの追加」モーダルを起動すると、マネージド オブジェクトを作成してモーダルに割り当てます。ユーザーがそのモーダルから保存すると、コンテキストが保存されます。彼がキャンセルした場合、私はオブジェクトを削除し、保存は必要ありません。

(URL スキームを使用して) アプリに切り替えてエンティティを追加する「インポート」機能を導入しました。これらのモーダルの 1 つが開いている可能性があるため、この時点でコンテキストを保存するのは安全ではありません。モーダル用に作成された一時オブジェクトは、ユーザーがキャンセルした場合でも保存されます。(キャンセル操作による) 削除が後で保存されるという保証はありません。ユーザーがアプリを終了する可能性があります。

同様に、アプリが終了するたびに単純に保存することはできません。その時点でモーダルが開いていると、一時オブジェクトが正しく保存されません。

このアーキテクチャを処理するための戦略を探しています。インポートされたエンティティを識別できるようにする「フラグ」ソリューションを検討しています。ユーザー ユーザーがアプリを終了すると、コンテキストに保存されていない変更がないかどうかを確認します。その場合、インポートされたエンティティ以外のすべてを除外して保存します。これが可能かどうか(選択的保存)か、それとも良いアイデアかはわかりません。

4

1 に答える 1

0

Kevin と Andrew のコメント (およびリンクされた記事) は、私をやる気にさせるのに十分でした。この質問でフォローアップのアドバイスをもらいました。

要約すると、子コンテキストを使用して一時オブジェクトを作成し、それをメイン コンテキストにマージしています。実際には、オブジェクトを挿入する場所として一時的なコンテキストのみが必要です。たとえば、挿入メッセージの外でオブジェクトを作成することが可能であれば、それを行い、確認時にメイン コンテキストに直接挿入することができます。

于 2013-01-11T20:03:34.987 に答える