触ってれば何となるかな?と思ったけど、 さすがにコーディングはJava系じゃないので厳しいわ。 文法がさっぱり馴染めない(T_T) X-codeの使い方は何とかなりそうですが。
と言う事で、基礎の基礎からGW中にマスターするぞ! 帰省前に本買わなきゃいかんが、とりあえずネットで。
混沌のiPhoneアプリケーション工房を参考にさして貰いました。
Objective-C 言語のクラスの宣言は、予約語や構文ではなく コンパイラディレクティブを利用します。 コンパイラディレクティブは、 コンパイラに Objective-C で拡張されたクラスの宣言や実装などに用いられ、 @ マークで始まるという特徴を持ちます。
ふむ。 @ってプロパティ(?)にも出てこなかったっけ? それも含めてコンパイラディレクティブ? 取りあえず進む。
クラスを宣言するコンパイラディレクティブは@interface で始まり@end .hはインターフェイス定義ファイルって理解でいいのかに?
@interface クラス名 : 親クラス名
{
インスタンス変数宣言
}
メソッド宣言
@end
@implementation クラス名
メソッド定義
@end
- (戻り値型) メソッド名 : 仮引数リスト ... ;
・「-」で始まるメソッドをインスタンスメソッド(動的) ・「+」 で始まるメソッドをスタティックメソッド(静的) ・メソッド宣言では型を 「( )」 で囲む ・メソッドが引数を受け取る場合は、コロン : に続いて仮引数リストを指定
この書き方が紛らわしい。 仮引数リストが、これまたよくわからん。
一般的なオブジェクト指向型言語では new 演算子が存在するが、Objective-Cにはない! って事で登場するのが「alloc クラスメソッド」(ファクトリメソッド)。 インスタンス生成はルートクラスが管理し「+ alloc;」として定義されている。
そして「メッセージ式」と呼ばれる方法で、以下のように呼び出す。
[クラス名 メソッド名:引数リスト...]
なるほど!これが「動的なメソッドの呼び出し」ってことなのね。 処理に時間はかかるが、合理的な記述ができるというカラクリか。
インスタンス参照を使わず、メッセージを入れ子にしてメッソドを呼び出す。
[[Test alloc] method]
なるほど!なるほど! いまさら何か書いてるコードの意味が理解できてきた! でも、やっぱ見にくくないかい?w