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]; …