摘要: 在前文 深入淺出 Cocoa 之 Framework 中講解了 Framework,接下來(lái)講解 plugin。如果你對(duì) Framework 還不太熟悉的話,請(qǐng)閱讀那篇文中,在本例中使用到了 framework,并在本文中沒有詳細(xì)講述其創(chuàng)建和使用過(guò)程。
為什么要引入插件?
我們知道編譯程序時(shí),會(huì)連接相關(guān) framework,通常我們所連接的框架是 Foundation 和 Application 框架。當(dāng)程序啟動(dòng)運(yùn)行時(shí),每個(gè)被連接到的 framework 都會(huì)被加載到該程序的 objc 運(yùn)行時(shí)環(huán)境中。如果我們想向正在運(yùn)行的程序加載新的 framework,那該怎么辦呢?答案之一就是使用 plugin 機(jī)制。cocoa 的 plugin 機(jī)制通常由 NSBundle 類來(lái)實(shí)現(xiàn),而實(shí)現(xiàn)動(dòng)態(tài)加載的功能由函數(shù) objc_addClass 來(lái)完成。一般我們無(wú)需與 objc_addClass 這個(gè)函數(shù)打交道,我們使用 NSBundle 來(lái)完成絕大部分與 plugin 相關(guān)的工作。
plugin 機(jī)制能夠讓我們開發(fā)出高度模塊化,可定制以及可擴(kuò)展的應(yīng)用程序,并 閱讀全文
為什么要引入插件?
我們知道編譯程序時(shí),會(huì)連接相關(guān) framework,通常我們所連接的框架是 Foundation 和 Application 框架。當(dāng)程序啟動(dòng)運(yùn)行時(shí),每個(gè)被連接到的 framework 都會(huì)被加載到該程序的 objc 運(yùn)行時(shí)環(huán)境中。如果我們想向正在運(yùn)行的程序加載新的 framework,那該怎么辦呢?答案之一就是使用 plugin 機(jī)制。cocoa 的 plugin 機(jī)制通常由 NSBundle 類來(lái)實(shí)現(xiàn),而實(shí)現(xiàn)動(dòng)態(tài)加載的功能由函數(shù) objc_addClass 來(lái)完成。一般我們無(wú)需與 objc_addClass 這個(gè)函數(shù)打交道,我們使用 NSBundle 來(lái)完成絕大部分與 plugin 相關(guān)的工作。
plugin 機(jī)制能夠讓我們開發(fā)出高度模塊化,可定制以及可擴(kuò)展的應(yīng)用程序,并 閱讀全文