前回引き続き「ヒレガス本第3版」からの内容です。当ブログの主たる読者のほとんどにとって全く興味のない内容と思いますが、まっ自分のブログなんで好きにさせてもらいます。
そんな訳で本日のお題は、ヒレガス本P177第11章の「Core Data入門」の例題”CarLot”です。実際にやってみられた方、うまく動作しましたか。私のMac環境、MacOSX10.6.2、Xcode3.2.1、Interface Builder3.2.1では、本編記載通りに作成すると、左の図のように写真を挿入できる”Image Well”に一種類の画像データしか挿入できず、例えば二行目のレクサスを選んでも一行目に挿入したヴォクシーの写真が表示されてしまいます。
ちなみに画像データは予め自分で用意しておいて、”Image Well”にドラッグ&ドロップして挿入します。
本編P179によれば、最初に”MyDocument.XCdatamodel”からエンティティとプロパティを定義する時に、”Photo”プロパティのデータ型を”バイナリー”にするように書いてあります。ところがこのとおりにすると、前述のとおり画像データが一種類しか挿入できなくなるようです。
対策として、”photo”のデータ型を”変換可能”に設定することで、複数の画像データが”Image Well”に挿入できるようになります。
デバッグに関しては、とりあえず「Interface Builderの設定を間違えたのとちゃうか」ということで、いろいろいじっているうちに偶然上手くいったというのが本当のところです。→いまいち理解度が低くてすみません。
で、完成したのが左の図です。これでレクサスにはレクサスの、ヴォクシーにはヴォクシーの画像データがドラッグ&ドロップで挿入できるようになりました。
しかし”Core Data”+バインドは恐るべしですね。なんだかよくわらかないうちに、入力、削除、保存、読み込み、アンドゥなど一般的な機能が全て搭載されたアプリができてしまいます。きちんと理解できている人には、強力なツールなんでしょうね。じっくり勉強せなあきませんなぁ。
3 件のコメント:
私はまだ見ていませんが、ヒレガスさんの会社のサイト(英語)からは、サンプルコードが入手できるそうです。正誤表とかあるんやろか。あっても英語なんやろな。
日本語もままならんのに英語なんてとても無理ですね。
ところで今日、MCに会いました。
あらMCんとこに行ってたんですか?不定期にしか登場しない、とか言ってましたけど…。
コメントを投稿