ページ

2008年2月2日土曜日

スクラップブックその1 (1)モデル

このエントリーをブックマークに追加 このエントリーを含むはてなブックマーク


画像の表示と保存に必要な情報が定義されている。位置情報は float、imageは Transformable(変換可能)でかつ「一時」的なデータとしている。imageの実態は別途ファイルで管理しているので CoreData上ではメモリ上にあるだけで良い。


モデリングツールで定義した後、このモデルのソースコードを作成する。モデリングツールを開いたままで、メニューから「新規ファイル」を選び、一番したの「設計 - 管理オブジェクトクラス」を選ぶと続いてアシスタントが表示される。



ソースコードを作らなくとも CoreDataは使えるが、モデルに関する特別な処理(値変換など)を記述する場合にはあった方がカスタマイズしやすい。

サンプルではドラッグ&ドロップ処理用のメソッドをいくつか定義している。


- (NSRect)rect
{
return NSMakeRect([self.x floatValue], [self.y floatValue], [self.width floatValue], [self.height floatValue]);
}

- (void)moveWith:(NSPoint)moving_vector
{
self.x = [NSNumber numberWithFloat:([self.x floatValue] + moving_vector.x)];
self.y = [NSNumber numberWithFloat:([self.y floatValue] + moving_vector.y)];
}


CoreDataでは数値型がすべて NSNumberになるのが難点。NSRectなどの構造体がそのまま扱えると便利なのだが。