Objective-C
クラスFooのインスタンスを宣言する時は、id型で宣言するか、クラス名を明示して宣言する方法がある。 id foo; Foo *foo; クラス名を明示した型宣言を使うと、コンパイル時にチェックできるため、意図していないクラスを誤って使うといった危険を回避できる。
Objective-Cのソースは拡張子を.mにする。各クラスごとに別々のファイルとして作成するのが普通。 インタフェースファイルの拡張子は.hにする。インタフェースファイル(クラス名.h) #import <Foundation/NSObject.h> @interface Foo : NSObject @end 実装ファイル(クラス名.m) #impo</foundation/nsobject.h>…
クラスの実現部分を実装部(インプリメント部)と呼ぶ。 @implementation クラス名 メソッド定義 .... } @endのように記述する。メソッド定義はメソッドの宣言と同じ記述のあとにCの関数本体の定義と同じ形式のブロックを置いもの。 例えば、引数をインクリメ…
Objective-Cではインタフェースとその実現部分を分けて記述しま す。インタフェース部にはそのクラスのインスタンス変数とメソッドを記述します。 通常はヘッダファイルとして作成し、そのクラスを使うモジュールから参照できるようにします。 @interface ク…
クラス名にメッセージallocを送ることでインスタンスを作成します。Cocoaでは通常、イニシャライザはinitかinitから始まるメソッド名を持つという約束があります。典型的には、 [[クラス名 alloc ] init ] としてクラスからインスタンスを作成する。
個々のメッセージはキーワードを並べたものを名前として表して他のメッセージと区別する。 これをメッセージセレクタやセレクタと呼ぶ。 copy retain copy: objectAtIndex: cellAtRow:column: fileExistsAtPath:isDirectory:命名規則はCoding Guidelines for…
オブジェクトはどのクラスに属するものでもidという特別な型で表現される。オブジェクトを格納する型は、 id obj; と記述する。オブジェクトobjにメッセージmsgを送るには、 [obj msg]; と記述する。引数がある場合は':'を使って明示する。 [obj msg: arg]; …