mindTools
Cocoa勉強会でMTLViewLoaderの発表を行った
- 2010-04-12 (月)
- その他
未完成ながらCocoa勉強会でMTLViewLoaderの発表を行った。
MTLViewLoaderはCocoaのNSViewControllerを支援するクラスです。NSViewControllerをUIKitのUIViewControllerの様にInterfaceBuilderからインスタンス化するクラス名の指定と読み込むNibファイルの指定を出来るようにする機能を持っています。
なんか、色々と欠陥があるのでもう少し修正してからソースコードをアップします。
じゃあね。
- Comments: 0
- Trackbacks: 0
NextStepのキーボードを頂いた
- 2010-03-25 (木)
- その他
NextStepのキーボードを頂いた。ADB仕様なので変換ケーブルを噛ませば使えそう。押し入れをゴソゴソと探ると変換ケーブルは出て来たが、ADBケーブルが出てこない。
- Comments: 0
- Trackbacks: 0
RPGツクールDSを購入した
- 2010-03-21 (日)
- その他
RPGツクールDSを購入した。マニュアルの字が小さくて何がなんだが判らない。
が、このプログラムの構造が判ると多分RPG系のゲームは作れるようになるんだろうと思い、研究中。
- Comments (Close): 0
- Trackbacks (Close): 0
uncrustifyのコロン問題
- 2010-03-20 (土)
- その他
以前、Cocoa勉強会で発表したuncrustifyだが、最新版ではObjCでの使い勝手の問題が改善されたらしい。
- インストールはMacPortsで出来るようになった。
- メソッドの引数をコロンで揃えるには”align_oc_msg_colon = true”を追加すれば良くなった。
との事。
時間が出来た時にでも調べ直して、Cocoa用設定ファイルを作り直したい。
- Comments (Close): 0
- Trackbacks (Close): 0
core-plot
- 2010-03-18 (木)
- その他
Cocoaでグラフを描く方法を探していたら、core-plotなる物を発見。
http://code.google.com/p/core-plot/
Building Cocoa Applications A step-by-step guide の第16章を見ながら作ろうとしていたので、無駄骨を折らずにすみそう。
- Comments (Close): 0
- Trackbacks (Close): 0
nibファイルの中のポインター
- 2010-03-17 (水)
- その他
メモ
InterfaceBuilderが生成するnibファイルの目的は、インスタンスの生成/初期化と依存性の注入。
インスタンスの生成/初期化はNSCoderプロトコルの実装によって行われています。[[className alloc ] init]の初期化ではなく、[[className alloc] initWithCoder:]で初期化してインスタンス化する。これは、initWithCoderの中身がキー/値、キー/値、キー/値、….と続くのでストリームからインスタンスをデコードしてると直感し易い。
一方、インスタンスが互いに参照しあうポインター値の永続化をどうしているのかが非常に判りにくい。
正確な仕様は把握していないが、InterfaceBuilderがインスタンスをnibファイルに落とし込む時には、IBOutletの値はnilとして保存するようだ。ポインターの代わりにIBConnectorsに従うインスタンスをこさえて、参照するインスタンスと参照されるインスタンスをこのポインター代わりのインスタンスに設定する。
そして、nibファイルの読み込み/再生時に、IBConnectorsプロトコルに従うインスタンスにestablishConnectionメッセージを投げて、nilがされてしまっていたポインター値にこのIBConnectorsプロトコルに従うインスタンスが持っていた値をポインターに変換して代入しているようだ。
上記のIBOutletポインターを扱うプロトコルIBConnectorsは何故かoracle(sun)の以下のページで説明されている。http://docs.sun.com/app/docs/doc/802-2110/6i63kq4ur?l=ja&q=InterfaceBuilder&a=view
なぜか、Appleのサイトには説明は無い。
- Comments (Close): 0
- Trackbacks (Close): 0