3

現在のアプローチ

  • インスペクターを使用して、属性のデフォルト値をデータモデルファイルに直接設定しました。

問題

  • 特定の属性が取ることができる値の列挙型があります。
  • 後の段階でメンテナンスが難しいのではないかと心配です。
  • 列挙型の値を変更することにした場合、手動でインスペクターに移動して変更する必要があるとします。
  • 列挙値に基づく属性がかなりあるので、難しくなります。

質問

  • プログラムでコアデータ属性にデフォルト値を追加するにはどうすればよいですか?
  • メンテナンスが簡単になるように、これを行うための代替手段はありますか?
4

2 に答える 2

4

CoreDataが管理対象オブジェクトモデルの作成/イントロスペクトに提供するクラスを使用して実行できるCoreDataモデルエディターでグラフィカルに実行できるすべてのこと。このユースケースではNSEntityDescription、エンティティ、そのエンティティ、propertiesまたはpropertiesByNameアクセサを検索しNSAttributeDescriptionて、関心のある属性のを見つけsetDefaultValue:、コアデータモデルエディタと同じことを行うことができます。

あなたはこれがあなたが探していることをするための最も適切な方法を見つけるかもしれません。または、@ DimitryShevchenkoが指摘しているように、NSManagedObjectサブクラスのawakeFromInsertメソッドで値を初期化できます。どちらを選択するかは、ワークフローやアプリケーションの他の要件によって異なります。

于 2013-02-22T07:17:04.087 に答える
3

NSManagedObjectをサブクラス化し、デフォルト値をで設定できます。awakeFromInsert

関連ドキュメントオブジェクトのライフサイクルを参照)

于 2013-02-22T06:11:57.483 に答える