通過將自己的控制項封裝成framework靜態庫來使用,可以在不暴露**的所有實現細節的前提下和他人分享控制項.另外通過自己封裝的過程也可以對日常使用他人的庫有更多的了解, 或者在實現模組化的時候可以把固定的業務模組化成靜態庫.
在ios中,靜態庫有兩種:.a
:乙個純二進位制檔案,需要有.**件配合使用.framework
:包含二進位制檔案和.**件,還有資源檔案
在xcode中,我們可以在已有控制項專案中通過新增新的targets來建立靜態庫,第乙個是建立.framework,第二個是建立.a
這裡我們需要把mach-o type改為static library
,因為製作的是乙個靜態庫
把build settings -> architectures -> build active architecture only -> release 選擇no,yes表示只編譯選中模擬器裝置對應的架構,no則為編譯所有模擬器裝置支援的cup架構(debug版本同理,提供給他人是使用時,建議debug也選中no)
建立後會生成乙個專案,這裡的.h要放我們專案中需要暴露給他人呼叫的標頭檔案,主要需要使用《包名/頭檔名.h>,因為在實際使用framework的時候是需要從保重搜尋標頭檔案的.
在.h中import後,還需要在build phases - headers
中把對應的標頭檔案放到public
中
我們在測試新增的檔案中寫乙個log方法
選擇模擬器進行編譯,然後在products
中找到framework右擊檢視show in finder
其中debug-ophonesimulator中的包就是在debug模式下模擬器可以執行的.framework包,對應的還有relese模式的模擬器包和真機包,我們要做的就是講relese下的模擬器和真機進行合併,因為我們通常使用的framework包都是乙個.
合併兩種型別的framework
這裡有兩種方法,一種是通過指令碼操作,另一種是通過lipo
命令列操作,這裡介紹第二種
lipo源於mac系統要製作相容powerpc平台和intel平台的程式.是乙個在macosx中處理通用程式的工具.常用方法有下面3種:
lipo -info libname.a(或者libname.framework/libname)
複製**
對framework只需要合併.a檔案就可以lipo -create 靜態庫存放路徑1 靜態庫存放路徑2 ... -output 整合後存放的路徑
複製**
將合併後的.a檔案替換原本包中的.a,至此,乙個簡單的framework包就完成了lipo 靜態庫原始檔路徑 -thin cpu架構名稱 -output 拆分後檔案存放路徑
複製**
當framework中需要依賴一些資源等,可以做乙個bundle存放資源,然後在copy bundle resources
中新增依賴
新建乙個bundle的targets
設定新增到bundle
新增依賴
這樣就可以在framework中引用這些資源
在實際應用中,我們的framework包往往會依賴一些第三方的庫,比如常見的afnetworking,sdwebimage等,這些庫往往主工程是包含的,如果在framework中再新增,就會引起類重複的衝突.一般有兩種處理方法
這種方法對於小一些或者說類少一些的庫來說比較合適
我們可以在新增庫的時候只引用,然後在framework中引用對應的標頭檔案,這樣可以保證build succeeded
編譯成功,而且framework中不會打包進去對應的類檔案. 但是已經有了依賴,就需要在主工程中新增對應的庫,這裡要注意的是,如果作為sdk給第三方使用,要確定framework中依賴庫的版本,因為有些庫版本改變可能引起對應檔案的不同.比如afnetworking的2.x
版本和3.x
版本之間
不要勾選add to terget
自己寫了乙個關於alertview控制項的demo,放到了github上,位址點這裡
List封裝為Page物件
最近在專案中,經常碰到這樣的情況,就是說前台需要page物件,但是我後台page查詢出來的資料 entity類 並不是前台需要的資料 dto 還需要二次封裝,前台要page物件啊,習慣了用工具類,咋自己封裝乙個page物件哦?所有就有了這篇文章,實際上思路都是一樣的,就是我返回的資料肯定是個page...
原始檔封裝為IP的步驟
因為模組的交接,最好將寫好的原始檔和生成的ip封裝乙個ip,然後再轉交給其他的同事使用,這是一種好的習慣。但是對於,封裝的過程還是需要注意一下。實際的看看步驟吧。1 將原始檔和使用到的ip生成工程.2 在tools create and package ip 開啟入下圖 3 注意選項,和生成的檔案的...
bga封裝扇出 扇出型封裝為何這麼火?
詳解扇出型封裝技術 2017年依然炙手可熱的扇出型封裝行業 新年伊始,兩起先進封裝行業的併購已經 維易科 veeco 簽訂了8.15億美元收購優特 ultratech 的協議,安靠 amkor technology 將收購nanium 未公開交易價值 ultratech是扇出型封裝光刻裝置的市場領導...