だから私はコアデータに苦労しています。同じことを行うには多くの方法があり、Storyboards と UIManagedDocuments を使用してアプリを構築しようとする場合は、昨年より古いすべてのチュートリアルと例を翻訳シートで読む必要があることがわかりました。今日の質問は、新しい管理対象オブジェクトを追加する際のベスト プラクティスを見つけることです。私は両方の方法で行われた例を見てきました:
(+ をクリックした後) テーブル ビュー コントローラーで新しい管理対象オブジェクトを作成し、その新しい輝く管理対象オブジェクトを下位の "追加" ビュー コントローラーに渡して、すべてのオブジェクト属性に対するユーザー入力を取得します。これは単純に見えますが、返されるオブジェクトには個々の属性がすべて含まれているため、簡単に理解できます。しかし、渡された管理対象オブジェクトを削除し、それ自体を閉じる前に Save Context を呼び出す「キャンセル」ボタンの「追加」ビュー コントローラのサンプル コードを見てきました。機能していますが、私の肩に乗っている MVC トレーニング gnome は、この従属ビューの追加でオブジェクトを削除し、恐怖が直接 Save Context を呼び出すことについて私に叫んでいます。Apple の Recipe サンプル コードは、このメソッドを使用しているようです。
Add ビュー コントローラーには何も送信せず、デリゲート呼び出しをテーブル ビュー コントローラーに送り返します。このデリゲートは、各属性を個別の渡されたパラメーターとして返します。したがって、return メソッドは非常に長くなります: controller:(UIViewController *)controller didReturnFirstName:(NSString *)firstName andLastName:(NSString *)lastName andStreetAddress:(NSString *) and... and... and.. しかし、これは SO です管理対象オブジェクトは、すべての個別の属性を受け取るときにテーブル ビュー コントローラーに作成され、「追加」ビューはモデル (コア データ) に触れたり、ユーザーが変更したときに未使用の管理対象オブジェクトを破棄したりするため、MVC ドグマと一致します。彼らの心。
チェーン化された委任されたメソッドでも、私はまだどちらがより良い方法であるかを自分自身と議論しています. 両方のフォームで生きてきた人からのコメントやアイデアは、歓迎すべき追加事項です.
ありがとう。