iOSはクラスの本質を簡単に理解する

1725 ワード

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メソッド
  • を起動する.
  • 元のクラスを先にロード分類
  • プログラムがこのクラスを実行するかどうかにかかわらず、+loadロード
  • が呼び出されます.
    +initializeメソッド:
  • クラスを初めて使用する場合、オブジェクトの作成など、1回+initializeメソッド
  • が呼び出されます.
  • クラスは1回だけ+initializeメソッドを呼び出し、親を呼び出してから子を呼び出すinitializeメソッド