2010-01-01から1年間の記事一覧

メソッドの実装

メソッドの実装は実際の実装部分へのポインタで表現されてて,IMP型の変数になってる. IMP型はobjc.hで, typedef id (*IMP)(id, SEL, ...); と定義される関数ポインタ. 可変長引数で,id型の第一引数,SEL型の第二引数をとり,id型の返り値を返す.

セレクタ

セレクタはSEL型の変数で表現されてて,objc.hで, typedef struct objc_selector *SEL; と定義されている. objc_selector構造体の定義はなく,Opaque構造体というらしい.

メソッド

メソッドはMethod型で定義され,ランタイムAPIを以下のように追いかけていくと,@objc-class.h typedef struct class-method *Method 同じく@objc-class.h struct class-method { SEL method_name; char *method_types; IMP method_imp; } となってて, メ…

メソッド,セレクタ,メソッドの実装

http://journal.mycom.co.jp/column/objc/018/index.html を激しく参考にさせていただいています.

基本的な論理関数

OR:論理和 入力A 入力B 出力Z 0 0 0 0 1 1 1 0 1 1 1 1 AND:論理積 入力A 入力B 出力Z 0 0 0 0 1 0 1 0 0 1 1 1 NOT:否定 入力A 出力Z 0 1 1 0

真理値表

論理回路における入力と出力の関係を記述した表. (例)論理和(OR)の真理値表 入力A 入力B 出力Z 0 0 0 0 1 1 1 0 1 1 1 1

クラスの書き方

クラスは通常インターフェース部と実装部を別々のファイルに記述する. インターフェースは拡張子.hのインターフェースファイルに記述する. 実装部は拡張子.mの実装ファイルに記述する. ひとつのファイルに複数のクラスを記述することが可能であるが,通例…

クラス

クラスはClass型で定義されるが,そのClass型はobjc.hで typedef struct objc_class *Class; と定義されている.さらに構造体objc_classはobjc-class.hで, struct objc_class { struct objc_class* isa; struct objc_class* super_class; const char* name;…

クラスオブジェクト

クラスはインスタンス化するまで実体がないんだけど,その実体のないクラスもオブジェクトとして考えましょうということ. 変数,メソッドはインスタンス化してから使用可能になるのが通常だけど,インスタンス化しなくても使用可能な変数,メソッドもある(…