objective-c調用靜態庫

一.基本知識 

在實際的編程過程中,通常會把一些公用函數製成函數庫,供其它程序使用,一則提搞了代碼的複用;二則提搞了核心技術的保密程度。所以在實際的項目開發中,經常會使用到函數庫,函數庫分爲靜態庫和動態庫兩種。和多數人所熟悉的動態語言和靜態語言一樣,這裏的所謂靜態和動態是相對編譯期和運行期的:靜態庫在程序編譯時會被鏈接到目標代碼中,程序運行時將不再需要改靜態庫;而動態庫在程序編譯時並不會被鏈接到目標代碼中,只是在程序運行時才被載入,因爲在程序運行期間還需要動態庫的存在。 

對iPhone平臺來說,iPhone官方只支持靜態庫聯編,因此下面就介紹下iPhone中靜態庫的用法。 

二.iPhone靜態庫使用 

1.創建靜態庫 

打開XCode新建一個項目,選擇Library下的“Cocoa Touch Static Library”,在Classes文件夾上點右鍵選擇“New File…”,然後在“Cocoa Touch Class”下選擇“Objective-C class”,這樣就可以創建Objective-C風格的源文件和頭文件。 

同樣,也可以創建C或者C++風格的代碼,在Classes文件夾上點右鍵,選擇“New File…”,這次選擇Mac OS X下的“C and C++”,就行。 

然後在文件裏編寫具體的調用代碼。 

最後進行編譯,就會產生一個以.a爲結尾的文件,就是我們需要的靜態庫。同時我們也需要生成的.h頭文件。 

2.使用靜態庫 

在需要調用靜態庫的工程的目錄下通過右鍵點Frameworks->Add->Existing Files..添加之前創建的.a靜態庫文件,然後在需要調用靜態庫的函數的.h文件裏,import進來和靜態庫中.m對應的.h頭文件,並且聲明靜態庫裏的類:@class 類名,這樣就可以使用靜態庫裏的函數了。 

3.聯調靜態庫 

如果單單以copy的方式包含進.a靜態庫,這樣只能使用靜態庫,如果需要修改靜態庫裏的函數,則需重新生成靜態庫,並將其重新包含進來,在開發階段會顯得比較麻煩。可以採用Xcode的Cross-Project Reference(跨項目參考)的方式解決。 

首先把靜態庫的XCode項目整個包含進我們的當前項目(注意:不要選擇Copy items to destination group's folder選項)。 

接着和第二步一樣也是包含進.a靜態庫(也要注意:不要選擇Copy items to destination group's folder選項)。 

這樣就可以從我們當前的項目裏直接打開靜態庫的項目,直接修改(注意:修改後編譯前必須選擇clean,清除原有的靜態庫,重新生成)。 


現在發現一個簡單的調用靜態庫的方法 

framework右鍵點擊add-->ExistingFramework-->add other  瀏覽靜態庫(.a)文件添加進來,就可以用。
 

參考網址:http://www.cocoachina.com/iphonedev/sdk/2010/0331/887.html
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章