1.》兩指針所在的類:isa指針 和 SEL指針 是屬於NSObject基類。
》類的本質:即是一個結構體。
2.當創建一個類後:
》創建對象:類 * p = [類 new] ;
》在創建一個對象之前,在堆內存中就先存在了一個該類的類類型對象,其中有一個SEL指針就是指向在代碼區內該類的第一個方法。
》定義一個對對象之後,在堆內存中創建了一個該類的對象,該對象包含了一個isa指針的成員變量(第一個屬性),isa指針則指向在堆裡面存在的類類型對象, 在棧內存裡創建了一個該類的指針p,p指針指向的是isa地址。
3.當執行[p 方法] 時:
》當p調用該類的一個方法時,首先通過p找到isa指針,再通過isa指針找到類類型對象,當在堆內存中找到類類型對象後,首次調用該類的方法時,用while(SEL == 方法地址) 找到該方法,這樣就完成了一次方法的調用。當下一次該對象調用同一個方法時,直接在緩存中找到。
4.當創建一個類對象內存表: