簡(jiǎn)單來說,Objective-C runtime是一個(gè)實(shí)現(xiàn)Objective-C語言的C庫(kù)。對(duì)象可以用C語言中的結(jié)構(gòu)體表示,而方法(methods)可以用C函數(shù)實(shí)現(xiàn)。事實(shí)上,他們 差不多也是這么干了,另外再加上了一些額外的特性。這些結(jié)構(gòu)體和函數(shù)被runtime函數(shù)封裝后,Objective-C程序員可以在程序運(yùn)行時(shí)創(chuàng)建,檢 查,修改類,對(duì)象和它們的方法。
runtime不需要知道Foundation。runtime會(huì)讓程序定義轉(zhuǎn)發(fā)函數(shù) (forwarding function),當(dāng)objc_msgSend()無法找到該selector的實(shí)現(xiàn)時(shí),那個(gè)轉(zhuǎn)發(fā)函數(shù)就會(huì)被調(diào)用。程序一啟動(dòng),CoreFoundation就將-forwardInvocation:定義成轉(zhuǎn)發(fā)函數(shù)。
參考網(wǎng)站http://mobile.51cto.com/hot-434685.htm