カテゴリ
タグ
以前の記事
2007年 06月 2007年 05月 2007年 04月 2007年 03月 2007年 02月 2007年 01月 2006年 12月 2006年 11月 2006年 10月 2006年 09月 2006年 08月 2006年 07月 2006年 06月 2006年 05月 2006年 04月 2006年 03月 2006年 02月 2006年 01月 2005年 12月 2005年 11月 2005年 10月 2005年 09月 2005年 08月 2005年 07月 2005年 06月 2005年 05月 2005年 04月 2005年 03月 2005年 02月 お気に入りブログ
晩ご飯日記 Another Diary 新館 Non-Fiction(Remix Version) blogリンク たまごの距離 かめ? PSY・Sリンク ココロに届けハートアイランド 大きな伽羅の木の下で 最新のトラックバック
ライフログ
その他のジャンル
ファン
記事ランキング
ブログジャンル
画像一覧
|
2005年 06月 28日
だいぶ間が空いてしまったので、以前の記事へのリンクを張っておこう。
インデックスページ作成ツールの構想 インデックス作成ツール/どんなツールにするか インデックス作成ツール/データの持ち方 インデックス作成ツール/データモデリング(その1) インデックス作成ツール/データモデリング(その2) インデックス作成ツール/データモデリング(その3) インデックス作成ツール/データモデリング(その4) インデックス作成ツール/ユーザーインターフェース(その1) インデックス作成ツール/ユーザーインターフェース(その2) インデックス作成ツール/ユーザーインターフェース(その3) インデックス作成ツール/Core DataとCocoa Bindingの仕組み(その1) ここでは、実際にプログラムの中で何が起こっているか簡単に説明してみる。 プログラムが起動して入力の画面が現れた直後は、プログラムの中のオブジェクトは下の図のようになっている。 このとき、まだAlbumのエンティティはプログラムの中には存在していない。この状態で、ユーザーが「+」のボタンをクリックすると、このボタンはAlbumControllerのaddにコネクションが繋がっているので、AlbumControllerに新しくエンティティを作って追加するように命令が渡る。すると今度はAlbumControllerがmanagedObjectContextに対して、Albumエンティティを作るように要求する。 AlbumControllerから要求を受けたmanagedObjectContextは最初にデータモデリングで作成したMyDocumentxcdatamodelを見てどんなエンティティを作ったらいいかを調べて、Albumエンティティを作り、AlbumControllerに渡す。 タイトルやアーティスト名などを入力した場合も、AlbumControllerが管理する。この部分はCocoa BindingといってPantherから使えるようになった仕組みだ。画面で入力された値は、AlbumControllerを介してAlbumエンティティに送られ、Bindingsで指定されたプロパティの値が変更される。 すると今度はAlbumエンティティの方からAlbumControllerの方にどのプロパティの値が変更されたかという情報が渡される。AlbumContollerはその情報をもらうと、変更されたプロパティとBindingsでつながれている画面上のオブジェクトの表示を変更する。このように、Controllerを仲立ちにしてエンティティと画面上のオブジェクトとの間をつなぐ仕組みがCocoa Bindingだ。 CoreDataを使った場合、この通知の仕組みの中にもう一つ、managedObjectContextへの通知が追加される。この通知が渡ることによって、managedObhectContextはどのエンティティのプロパティの値がどのように変更されたかということをすべて知っていることになる。何も付け加えなくてもUndo(取り消し)やRedo(やり直し)の機能が使えたのはそのためだ。 managedObjectContextはエンティティに対して行われた操作(追加や削除、値の変更)をすべて履歴として残していて、いつでも操作を取り消したり、取り消した操作をやり直したりすることができるのだ。
by uchya_x
| 2005-06-28 23:52
| プログラミング
|
ファン申請 |
||