2012-02-20 97 views
1

任何人都可以解釋我如何在Objective-C的引擎下繼承工作嗎?繼承目標-c

可以說我有繼承類A的類B.這兩個類之間有什麼粘連,所以B類能夠訪問類A的屬性和方法?

+1

「膠水」是什麼意思?你對於面向對象/繼承本身有很好的理解嗎?也就是說,你是否已經使用另一種面向對象的語言? – DarkDust 2012-02-20 12:19:53

+0

關於消息,文檔在這裏解釋得很好:https://developer.apple.com/library/mac/#documentation/Cocoa/Conceptual/ObjCRuntimeGuide/Articles/ocrtHowMessagingWorks.html#//apple_ref/doc/uid/TP40008048- CH104-TPXREF134 – Monolo 2012-02-20 12:52:26

回答

2

isa

isa在運行時標識類型,並指代其動態'膠水'(請參閱vtable)。由於isa,運行時知道(或能夠確定)發送消息時要執行的方法,以及self的類型。

創建實例時,會分配其isa。另一個主要貢獻者當然是編譯器,它在你到達較低級別時接管 - 例如,編譯器。直接訪問實例變量並定義方法。編譯器在創建對象和消息傳遞時添加了許多調用。

0

試圖理解下面的代碼

@interface SampleViewController : UIViewController{} 

這指定SampleViewController繼承UIViewController的事實,你可以訪問的UIViewController的所有屬性/方法。

我同意賈斯汀關於動態'膠水'的評論。