2012-02-19 98 views
3

我正在開發一個靜態庫,我需要使用開源SBJson類。靜態庫SBJson爲iOS

將SBJson類包含到我的庫中而不需要在分發我的靜態庫時包含所有頭文件(.h)的最佳方法是什麼?

+0

做你的庫的客戶端直接需要的SBJSON功能?如果是這樣,你需要爲它提供標題。如果不是,你不應該。 – 2012-02-19 02:15:56

回答

1

最好的方法是不要(試圖)隱藏依賴關係,然後告訴客戶他們需要構建並鏈接到SBJson庫。

安全的替代方法是將SBJson的所有符號重新聲明爲不同的名稱(例如唯一前綴)。這將確保您的客戶端將您的庫與它們的依賴關係連接起來毫無麻煩。

+0

這就是我想要做的。這也將避免與其他靜態庫也可以使用相同的庫 – 2012-02-19 05:28:47

+0

有編程的前綴,而無需手動去並添加前綴所有符號的方式有衝突? – 2012-07-16 20:33:50

+0

@LiyanChang不能安全(考慮鏈路和/或運行時的碰撞,如果客戶端也使用該庫)。如果你在Xcode中使用重構工具,它應該會很快。 – justin 2012-07-17 06:29:02

1

如果您創建一個靜態庫,任何使用該靜態庫的應用程序都需要知道所有可用於該庫的公共方法。

如果SBJson是你的庫的內部部分,那麼你就不必包含它的頭文件分發應用程序時的文件。您只需包含面向公共方法的.h文件。

如果編譯你的靜態庫,只是不包括SBJson下的文件複製階段的頭文件。