Objective-C學(xué)習(xí)筆記調(diào)用靜態(tài)庫詳解
Objective-C學(xué)習(xí)筆記 調(diào)用靜態(tài)庫是本文要介紹的內(nèi)容,首先我們來了解靜態(tài)庫的概念,再來學(xué)習(xí)靜態(tài)庫的使用,我們來看詳細(xì)內(nèi)容介紹。
一、基本知識
在實(shí)際的編程過程中,通常會把一些公用函數(shù)制成函數(shù)庫,供其它程序使用,一則提搞了代碼的復(fù)用;二則提搞了核心技術(shù)的保密程度。所以在實(shí)際的項(xiàng)目開發(fā)中,經(jīng)常會使用到函數(shù)庫,函數(shù)庫分為靜態(tài)庫和動態(tài)庫兩種。
和多數(shù)人所熟悉的動態(tài)語言和靜態(tài)語言一樣,這里的所謂靜態(tài)和動態(tài)是相對編譯期和運(yùn)行期的:靜態(tài)庫在程序編譯時(shí)會被鏈接到目標(biāo)代碼中,程序運(yùn)行時(shí)將不再需要改靜態(tài)庫;而動態(tài)庫在程序編譯時(shí)并不會被鏈接到目標(biāo)代碼中,只是在程序運(yùn)行時(shí)才被載入,因?yàn)樵诔绦蜻\(yùn)行期間還需要?jiǎng)討B(tài)庫的存在。
對iPhone平臺來說,iPhone官方只支持靜態(tài)庫聯(lián)編,因此下面就介紹下iPhone中靜態(tài)庫的用法。
二、iPhone靜態(tài)庫使用
1、創(chuàng)建靜態(tài)庫
打開XCode新建一個(gè)項(xiàng)目,選擇Library下的“Cocoa Touch Static Library”,在Classes文件夾上點(diǎn)右鍵選擇“New File…”,然后在“Cocoa Touch Class”下選擇“Objective-C class”,這樣就可以創(chuàng)建Objective-C風(fēng)格的源文件和頭文件。
同樣,也可以創(chuàng)建C或者C++風(fēng)格的代碼,在Classes文件夾上點(diǎn)右鍵,選擇“New File…”,這次選擇Mac OS X下的“C and C++”,就行。
然后在文件里編寫具體的調(diào)用代碼。
最后進(jìn)行編譯,就會產(chǎn)生一個(gè)以.a為結(jié)尾的文件,就是我們需要的靜態(tài)庫。同時(shí)我們也需要生成的.h頭文件。
2、使用靜態(tài)庫
在需要調(diào)用靜態(tài)庫的工程的目錄下通過右鍵點(diǎn)Frameworks->Add->Existing Files..添加之前創(chuàng)建的.a靜態(tài)庫文件,然后在需要調(diào)用靜態(tài)庫的函數(shù)的.h文件里,import進(jìn)來和靜態(tài)庫中.m對應(yīng)的.h頭文件,并且聲明靜態(tài)庫里的類:@class 類名,這樣就可以使用靜態(tài)庫里的函數(shù)了。
3、聯(lián)調(diào)靜態(tài)庫
如果單單以copy的方式包含進(jìn).a靜態(tài)庫,這樣只能使用靜態(tài)庫,如果需要修改靜態(tài)庫里的函數(shù),則需重新生成靜態(tài)庫,并將其重新包含進(jìn)來,在開發(fā)階段會顯得比較麻煩??梢圆捎肵code的Cross-Project Reference(跨項(xiàng)目參考)的方式解決。
首先把靜態(tài)庫的XCode項(xiàng)目整個(gè)包含進(jìn)我們的當(dāng)前項(xiàng)目(注意:不要選擇Copy items to destination group's folder選項(xiàng))。
接著和第二步一樣也是包含進(jìn).a靜態(tài)庫(也要注意:不要選擇Copy items to destination group's folder選項(xiàng))。
這樣就可以從我們當(dāng)前的項(xiàng)目里直接打開靜態(tài)庫的項(xiàng)目,直接修改(注意:修改后編譯前必須選擇clean,清除原有的靜態(tài)庫,重新生成)。現(xiàn)在發(fā)現(xiàn)一個(gè)簡單的調(diào)用靜態(tài)庫的方法
framework右鍵點(diǎn)擊add-->ExistingFramework-->add other 瀏覽靜態(tài)庫(.a)文件添加進(jìn)來,就可以用。
小結(jié):Objective-C學(xué)習(xí)筆記 調(diào)用靜態(tài)庫的內(nèi)容介紹完了,希望本文對你有所幫助!