FC2ブログ
nil と Nil の違い
なんだか、へんてこな物が多いね。本当に('A`)

id データ構造体へのポインタ
Class クラスデータ構造体へのポインタ
SEL セレクタ。メソッド名を識別するためにつかう
IMP idを戻すメソッド実装へのポインタ
BOOL YES | NO (TRUE | FALSEではない)
nil nullオブジェクトポインタ(id)0の定数
Nil nullクラスオブジェクトポインタ(class)0の定数

Objective-C のオブジェクトは、必ずClass isa を持つ構造体らしい。

これらの定義は下記のヘッダーにある
objc/objc.h
スポンサーサイト
@selector で3個以上の引数を渡した呼び出し
@selector で、メソッドの名前(セレクタ)を使って他のオブジェクトからメソッドを呼び出す方式がある。

// 引数がないバージョン
[delegator performSelector:selector];
// 引数が一つのバージョン
[delegator performSelector:selector withObject:arg1];
// 引数が二つのバージョン
[delegator performSelector:selector withObject:arg1 withObject:arg2];

こんな感じだね。で、引数を3個使いたい場合は、プロトコルを使って実装することになるのだけど
UIView のアニメーションの処理で3個の引数を渡したセレクタがあるわけだ。
これをどうやって実装しているかというと、下記のC言語の関数が用意されている。

objc_msgSend(delegator, selector, &arg1, &arg2, &arg3);
TOP
プロフィール

hssamurai

Author:hssamurai
FC2ブログへようこそ!

最新記事
最新コメント

最新トラックバック

月別アーカイブ
カテゴリ