1.クラスもオブジェクト
- クラスとは、クラス・オブジェクトと呼ばれるClass型のオブジェクトのことです。
- Class型の定義
// Objective-Cのクラスを表す任意の型。
typedef struct objc_class *Class;
- クラス名はクラス・オブジェクトを表し、各クラスに1つだけクラス・オブジェクトがあります。
- クラス・オブジェクトの取得
// 获取类对象两种方式person1 和 person2
Class person1 = [Person class];
Person *p = [Person new];
Class person2 = [p class];
// クラス・オブジェクトはクラス・メソッドを呼び出す
Person *person3 = [person1 new];
2.クラスのロードと初期化メソッド
+ (void)load; // 在类加载的时候调用一次
+ (void)initialize; // クラスが使われるときに一度だけ呼び出される
+ロード方式:
- アプリケーションの起動時にすべてのクラスとカテゴリがロードされ、すべてのクラスとカテゴリに対して +load メソッドが自動的に呼び出されます。
- つまり、親クラスの+loadメソッドを呼び出し、次に子クラスの+loadメソッドを呼び出します。
- カテゴリをロードする前に元のクラスをロード
- 実行中のアプリケーションでそのクラスが使用されているかどうかにかかわらず、 +loadが呼び出され、そのクラスがロードされます。
+initialize メソッド:
- initializeメソッドは、オブジェクトの生成など、クラスが使用されるときに一度だけ呼び出されます。
- クラスが +initialize メソッドを呼び出すのは一度だけで、最初に親クラスを呼び出し、次に子クラスの initialize メソッドを呼び出します。





