0

測定値 (心拍数と皮膚反応) を管理するための次のデータモデルがあります。 ここに画像の説明を入力

新しい測定値を取得すると、「MinuteStress」のエンティティになります。対応する日と月のエンティティが存在するかどうかをプログラムで確認し、存在しない場合は自動的に作成し、測定値を平均に追加します。

私の最初の質問は次のとおりです: スーパー エンティティを確認する適切な場所はどこですか? 「MinuteStress」の NSManagedObjectSubclass でこれを行うのは良い考えですか、それともビューコントローラーでエンティティを作成した後に行う方が良いですか?

2 番目の質問は、サブ エンティティからスーパー エンティティを作成するスマートな方法があるかどうかです。

4

1 に答える 1

0

理論awakeFromInsert的には、サブクラスのメソッドでそれを行うことができますNSManagedObjectが、他の Core Data イベントをトリガーできるため、それは悪い考え (tm) です... 詳細については、Apple ドキュメントの「特別な考慮事項」セクションを参照しawakeFromInsertください

ビュー コントローラーでスーパークラスをクエリし、必要に応じてそれらを作成してから、MinuteStress インスタンスを作成することをお勧めします。

-(DayStress *) createDayStress]また、子オブジェクトを作成し、それを返す前にその親参照 (および初期化値) を自動的に設定する、関連する子オブジェクト (たとえば、MonthStress など) を作成するためのいくつかの便利なメソッドを作成することもできます。これにより、View Controller のコード フローがより優れた IMO になります。

于 2013-04-19T20:20:56.837 に答える