2010-04-20 63 views
1

我已經按照this教程來設置一個靜態庫,其中包含我們正在處理的3個項目中的常見類。在iPhone靜態庫上暴露標題

這很簡單,在xcode上創建一個新的靜態庫項目,在那裏添加代碼,將一些標題角色從project更改爲public。本教程說我應該遞歸地將我的庫文件夾添加到header search paths

這是正確的路嗎?

我的意思是,在我的圖書館項目中,我有文件夾分開,如Global/,InfoScreen/,Additions/。我試圖在根文件夾上設置一個LOKit.h文件,並在該文件中#import我需要公開的所有內容。因此,在我的主機項目中,我不需要將文件夾遞歸添加到標題搜索路徑,而只需要#import "LOKit.h"

但我無法得到這個工作,主機項目不會建立抱怨所有我沒有添加到LOKit.h的類,即使庫項目建立。

所以,我的問題是,什麼是權利當我在xCode上設置一個Cocoa Touch靜態庫項目時暴露頭文件的方式?

回答

1

我結束了該項目的根文件夾這樣建立LOKit.h

#import "Global/LOCommon.h" 
#import "Additions/LOAdditions.h" 
#import "View/LOCustomView1.h" 
#import "View/LOCustomView2.h" 

而且在我的主機項目,我設置的頭搜索路徑變量,以我的媒體庫的根文件夾,不遞歸。無論何時我需要,我只需輸入LOKit.h

我還包括在這個項目共享庫(如JSON,FBConnect和Reachabillity),這是跨項目共享。這樣我只需要在一個地方更新這些庫,一次。

0

當使用靜態庫我通常去以下兩種方法之一:

如果我創建的庫我和它是有點緊耦合到使用的lib項目,我通常創建爲源根庫在XCode設置中。然後,可以遞歸地將源根作爲變量添加到標題路徑。另一方面,如果庫不是由我自己完成的,或者完全與我的項目分開維護,我通常會將庫的一個版本以及相關的頭文件複製到使用它的項目中並引用它們。如果你需要不斷的更新,這會更麻煩一些,但是如果庫中的某些東西發生了變化,那麼不會中斷你的應用程序。

+0

謝謝,你的第一個建議幾乎是我已經做的。但我真的很想避免將文件夾添加到標題搜索路徑遞歸中,因此我可以選擇要公開的內容以及將圖書館用戶混淆的內容。 – leolobato 2010-04-26 02:27:09