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