Objective-C++
Objective-CではCの機能は使えるが,C++の機能は使えない。C++が使えるのはObjective-C++という。
Objective-C++についてはこちら。
OOを理解できていない者にとって,オブジェクト指向言語の中で別のオブジェクト指向言語を使うなんて狂気の沙汰としか思えない。Objective-CからC++の関数を呼ぶときに使うくらいにしか使えなそう。
XcodeでObjective-CファイルをObjective-C++ファイルに変更するには,Utilities Viewのファイルタイプを"Objective-C++ source"に変えるだけではダメで,ファイルの拡張子を.mから.mmに変える必要もあるっぽい。これに気付かず30分くらいハマってしまった。
しかし,Objective-Cは全然わからん。
[メモ] XcodeでPreference Paneのテンプレートを使用する際の注意
Xcode4.1/4.2を使ってPreference Paneを書こうとしたが,どうもうまくいかない。テンプレートを使用して環境を作成。チュートリアルに従って,ヘッダファイルにアウトレットを追加しようとしてもなぜかうまくいかない。Interface Builderで追加したオブジェクト(ボタンやチェックボックス)からCtrlドラッグ*1でヘッダファイルに落とせば追加されるとのことなのだが,できない。
ちなみに,Apple DeveloperにあるPreference Paneのサンプルコードや普通のCocoaアプリのテンプレートなら,Ctrlドラッグでアウトレットを追加できる。
チュートリアルをよく読んでみると,nibファイルをヘッダファイルを結びつけろと書いてある。しかし,チュートリアルは古いので,Xcode4系ではやり方がわからない。
で,適当にXcodeを動かしていたら,nibファイルのFile's Ownerが作成したクラスではなく,そのクラスのスーパークラスであるNSPreferencePaneと結びつけられているっぽいことに気付いた。具体的には,nibファイルを選択し,File's Owner(水色の立方体)をクリック。右の方にあるAttribute View的なところの"Show the Identify inspector"という吹き出しが出る所を選択。そこにある"Custom Class"というところの"Class"がNSPreferencePaneとなっている。
そこを作成したクラスに変えたら,Ctrlドラッグでアウトレットを追加できるようになった。
用語は適当なので悪しからず。
*1:Ctrlキーを押しながらドラッグ