2012-08-27 1 views
7

Xcodeでコアデータモデルを設計するとき、あなたは自動的にEDITORから「NSManagedObjectのサブクラスを作成する」を選択エンティティ コアデータモデルを変更した後にクラス定義を再作成する方がいいですか?

  • を選択

    1. によってNSManagedObjectのサブクラスの定義(.Mと.hファイル)を生成することができますメニュー

    その後、これらのクラスに多くのコードを追加することができます。その後、何らかの理由でデータモデルの設定を大きく変更する必要がある場合はどうすればよいでしょうか?これらの変更をデータモデルに反映させるために、自動的に行う方法はありますか?またはすべてを手動で行う必要があります。

    現在、これらのクラス定義をEDITメニューから(自動的に)再作成しようとすると、現在のすべてのファイルが置き換えられます。追加されたコードはすべて消えます。

    Xcodeの将来のバージョンでスマート機能が追加されることを本当に期待します。追加された作業を失うことなく、デフォルトのクラス定義を自動的に更新します。たぶん私は怠惰です。 :)

  • 答えて

    6

    あなたは共通の問題に遭遇しています。 Xcodeを使用して管理対象オブジェクトのサブクラスを作成する方法は、当面の間はかなり複雑です。それを知って、あなたのことができ、次のいずれかの簡単な例については、それ

    周り

    • デザインは、あなたがあなたのNSManagedObjectサブクラスに(ない状態が)機能を追加するカテゴリーを使用することができます。カテゴリのファイル内のコードは、データモデルが変更されるたびに上書きされないことは明らかです。

    • Xcodeの

      Mogeneratorはまさにその問題を解決するために設計された気の利いたツールですが、使用しないでください。それは2つのクラスを1つではなくエンティティごとに作成し、Xcodeで一方を管理しながら他方を管理することができます。

    1

    を別の名前でクラスを作成し、古いクラスに生成されたフィールドを貼り付けることができますAppleがXCodeの7の問題に対処しているようだ:今、それは自動的にエンティティとのカテゴリを作成しますエンティティは、そのコアデータプロパティを持ちます。再生成すると、カテゴリのみが更新され、エンティティクラスのカスタムコードは無傷のままになります。これを参照してくださいlink

    関連する問題