iOS靜態(tài)庫實現(xiàn)學(xué)習(xí)(第一部分)

前言

? ? 對于新手程序員來說,可能還不了解什么是靜態(tài)庫,還有一個相對應(yīng)的概念叫動態(tài)庫。那開篇我們先了解一下兩個庫的基本概念,什么是靜態(tài)庫,什么是動態(tài)庫。

概念

? ? 靜態(tài)庫:鏈接時,靜態(tài)庫會被完整地復(fù)制到可執(zhí)行文件中,被多次使用就有多份冗余拷貝。文件后綴:.a或者.framework

? ? 動態(tài)庫:鏈接時不復(fù)制,程序運行時由系統(tǒng)動態(tài)加載到內(nèi)存,供程序調(diào)用,系統(tǒng)只加載一次,多個程序共用,節(jié)省內(nèi)存。文件后綴:.dylib或者.framework

? ? 所以我們一般可以在文件后綴上可以區(qū)分哪些是靜態(tài)庫,哪些是動態(tài)庫。但是我們要注意的是,我們使用動態(tài)庫必須是蘋果自己設(shè)計的動態(tài)庫,自制的在審核的時候會被拒。別問為什么,蘋果有時候就是這么的強勢。

實現(xiàn)方法

? ? ?一、新建項目,這個就不多說了,選擇“Cocoa Touch Static Library”,下一步為你的靜態(tài)庫項目命名。

別選擇錯咯


新建完成,在Products里的文件就是以后我們要用的靜態(tài)庫。上面是需要打包到進靜態(tài)庫的實現(xiàn)代碼


二、編寫實現(xiàn)代碼。在外部傳入簡單的字符串,然后彈出一個AlertView

首先,我們要提供給外部調(diào)用方一個入口。這個入口的作用通俗一點就是一本說明書,在這個入口中,要提供調(diào)用靜態(tài)庫的方法,需要傳入的參數(shù)。當(dāng)使用正確的方法和傳入正確的參數(shù)后就可以使用靜態(tài)庫了。我們用一個.h文件來作為靜態(tài)庫的入口。

demo中“StaticLibDemo.h”就是這個靜態(tài)庫的入口。.m就是具體實現(xiàn)的方法


StaticLibDemo.h

然后在.m中我們實現(xiàn)彈框。

StaticLibDemo.m

接著,在配置項我們完成對外部入口.h的配置。


最后,build一下就完工了。

不過這里我們主要一個重點信息:

靜態(tài)庫文件的版本(4種)

真機-Debug版本

真機-Release版本

模擬器-Debug版本

模擬器-Release版本


這個是模擬器版本。只能在模擬器使用,真機調(diào)試會報錯


這個是真機版本。只能在真機使用,模擬器調(diào)試會報錯

如果既想要在真機調(diào)試又想在模擬器調(diào)試,那怎么辦?

答案很簡單,在mac 終端輸入一串命令就可以了。

lipo -createDebug-iphoneos/xxx.aDebug-iphonesimulator/xxx.a -outputxxx.a



這個就是我們最終的靜態(tài)庫

Demo實現(xiàn)


導(dǎo)入靜態(tài)庫文件和暴露給外部的.h文件


運行一下,完美

下一篇介紹如何在workspace里實現(xiàn)靜態(tài)庫的調(diào)試

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容