1.概述:apple的開發,主要提供了兩種庫:一種是靜態庫,系統自帶的.framework和本身建立的.a文件,主要在編譯時供調用;還有一種是動態庫,主要以.dylib結尾(或直接爲.o文件),在運行時建立成.o文件連接到工程文件中供調用。蘋果目前只提供靜態庫的封裝爲主,接下來就介紹.a靜態庫的封裝。架構
2.功能:主要有2大用途:1).功能模塊化,便於重用;2).保密源文件內部實現,保護源文件隱私。app
3.步驟:建立一個新的project工程文件->選擇cocoa touch static library->建立供他人調用的.h和.m文件->以.h和.a文件來配合,用.h文件中提供的接口函數,須要供他人調用的函數接口須要暴露在.h文件中->由於框架是靜態庫,因此最後是編譯生成.a文件->在products中找到文件位置->在須要引用的工程中添加.a文件和相應的.h頭文件(注意link binary with library連接進去)。注:其實.a文件就是.m文件的集合,根據打包出來的.h文件來調用裏面相應的.m文件。框架
4.示例:1.2.3.456模塊化
7.8.9.10函數
5.問題:1).Product->scheme中注意release和debug版本。spa
2).若編譯後.a文件是紅色的說明沒有成功,能夠切換一下模擬器和device工程的目錄生成黑色.a文件。debug
3).注意,模擬器由於是在mac下,cpu架構是x86的和device的iPhone等設備下arm的架構不一樣,咱們能夠對生成的文件進行查看lipo -info xxx.a ,若想同時使用便使用lipo -create .../模擬器/xxx.a .../設備/xxx.a -output .../輸出位置/xxx.a。blog
4).若是設置了other linker flags 爲-ObjC時,會出現archecture爲i386而不是x86_64,這個視具體狀況編譯。接口