Core Data (iPhone 用) を使用して最初のプロジェクトを設計していますが、設計アプローチに関連する可能性のある問題がいくつかあります。
ユーザーが注文を作成できるアプリケーションを実行しています (レストランの場合としましょう)。グラフィック デザイナーを使用して永続化オブジェクト (OrdeMO) をモデル化しています。管理対象オブジェクトであることを示すために、各名前の先頭に MO を追加します。XCode を使用して、Managed Object Class を自動的に作成します。
Managed Context で新しいオブジェクトを検索または作成できる "DAO" クラスをいくつか作成しました。
今私の問題に。
ユーザーが作成している注文を保存するために OrderMO オブジェクトを作成したいのですが、ユーザーが実際に注文するまで、それをコンテキストの一部にしたくありません。[OrderMO alloc] を使用してオブジェクトを作成しようとしましたが、取得したオブジェクトは「不完全」であり、その属性を設定しようとするとエラーが発生します。
問題は、それを使用するためにコンテキスト内で注文を作成する必要があることだと思います。そうですか?
私はさまざまなオプションを検討しました:
コンテキストでオブジェクトを作成し、ユーザーが注文を破棄した場合はユーザー ロールバックを作成します。問題は、ユーザーがプロセス中に他のコンテキスト オブジェクト (設定など) を保存する可能性があるため、これが機能しないことです。「別のトランザクション内」でオブジェクトを作成する方法はありますか?
MO と同じデータを保持するラッパー オブジェクトを作成し、ユーザーが注文したときにのみ MO を作成します。これの欠点は、新しいクラスを維持しなければならないことです。
MO に「placed」などの属性を作成し、コンテキストで検索をフィルタリングするために使用します。これの問題は、ドメイン内に「ゴミ」オブジェクト (つまり、未配置の注文) が残り、時々クリーンアップを行う必要があることです...
他に選択肢はありますか?
どんな提案でも大歓迎です。
ありがとう(この長い投稿を読んでくれて!)ゴンソ