一、概念了解
1.什么是庫?
庫是共享程序代碼的方式恍风,一般分為靜態(tài)庫和動態(tài)庫。
2.靜態(tài)庫和動態(tài)庫的區(qū)別
靜態(tài)庫:鏈接時完整地拷貝至可執(zhí)行文件中承疲,被多次使用就有多份拷貝邻耕。靜態(tài)庫形式有.a和.framework兩種形式
動態(tài)庫:鏈接時不復(fù)制,程序運(yùn)行時由系統(tǒng)動態(tài)加載到內(nèi)存燕鸽,供程序調(diào)用兄世,系統(tǒng)只加載一次,多個程序公用啊研,節(jié)省內(nèi)存御滩。動態(tài)庫形式有.dylib和.framework形式。
3.注意:系統(tǒng)的.framework是動態(tài)庫党远,我們自己建立的.framework是靜態(tài)庫削解。
- .a和.framework的區(qū)別
.a是一個純二進(jìn)制文件,.a文件不能直接使用沟娱,要配合.h文件使用
.framework中除了有二進(jìn)制文件之外還有資源文件氛驮。.framework可以直接使用
5.為什么要使用靜態(tài)庫
方便共享代碼,便于合理使用济似;
和別人分享你的代碼庫矫废,但不想讓別人看到你代碼的實(shí)現(xiàn)盏缤;
開發(fā)第三方SDK的需要。
.framework的封裝和.a的封裝差不多蓖扑,.a封裝可參考http://www.reibang.com/p/2ae38070275a
下面講下.framework封裝的具體過程
二唉铜、封裝過程
1.創(chuàng)建一個工程,在創(chuàng)建時選擇下圖所標(biāo)注的選項(xiàng)
2.創(chuàng)建好工程后律杠,創(chuàng)建自己的工具類潭流,如下圖所示
3.配置系統(tǒng)參數(shù),選中工程文件--->build setting----->linking
4.公開你需要公開的頭文件柜去,build Phases ---->Headers
5.進(jìn)入ZZFrameworkTest.h文件中將你要公開的.h文件引入
6.打包.framework灰嫉,先選中模擬器,編譯诡蜓,再選中真機(jī)熬甫,編譯程序,在工程中找到framework文件---->show in finder蔓罚,會找到如下圖所示,一個是Debug-iphoneos(真機(jī))下的瞻颂,一個是Debug-iphonesimulator(模擬器)下的
7.通過終端將兩個framework文件合并豺谈。打開終端,輸入命令lipo -create 模擬器framework文件路徑(將文件拖入終端即可) 真機(jī)framework文件路徑 -output 合并的文件路徑贡这,回車茬末,如圖所示
注意,往終端拖文件時不是拖.framework文件盖矫,而是它文件下的一個不帶后綴名的一個文件
這樣你就合并生成了一個不帶后綴名的文件丽惭,將你合并的這個文件名改成你未合并之前的名字并替換掉原來真機(jī)里面的文件
8.將修改后的framework文件拷貝出來保存,這就是我們最終封裝好的文件
9.新建一個正常的工程辈双,將封裝好的framework文件導(dǎo)入工程
并使用封裝好的方法
這就是封裝加使用的全部過程责掏,參考文章http://www.reibang.com/p/87dbf57cfe4a