2015-12-29 106 views
0

所以,我有一個iOS應用項目與一個靜態庫作爲子項目。正如在這裏發現多次,你應該將庫頭文件的可見性設置爲public/private/project,具體取決於誰應該能夠使用它們。xcode靜態庫公共/私人/項目頭文件

基於此,我創建了一個帶有頭文件的類,該頭文件嚮應用項目(或將要使用該庫的人)展示了功能。當然,這個頭文件會從庫項目中的其他類中導入一些頭文件。由於這些其他頭文件沒有提供應該暴露給圖書館用戶的功能,我想將它們設置爲「項目」,使它們對世界其他地方不可見。

但是,當我將頭文件設置爲「項目」時,它們不會被複制到任何私人或公共頭文件夾中。編譯使用該庫的應用程序項目時,如果在PublicLibraryClassHeader.h中使用#import "ProjectHeader.h",將導致出現'ProjectHeader.h' file not found錯誤。

所以問題是:如何將頭文件設置爲庫項目中的「項目」,並在該庫項目中使用它們?我誤解靜態庫中的public/private/project頭文件的概念嗎?

+0

easies的方法是將你的靜態庫轉換爲框架。 Framework是一個特定容器中的靜態庫,它爲您提供了所有的魔力。順便說一句,關於公共頭的這些詞與框架相關,而不是靜態庫。 –

+0

那麼解釋了很多!謝謝你的提示。 –

+0

@ErikVerboom我有同樣的問題。我只想看到將被我的框架的客戶端使用的頭。但是,當我添加項目標題時,它們在公共頭文件中不可見。請建議我如何解決這個問題 – user100

回答

1

easies的方法是將你的靜態庫轉換爲框架。 Framework是一個特定容器中的靜態庫,它爲您提供了所有的魔力。順便說一句,關於公共頭的這些詞與框架相關,而不是靜態庫。

+0

不,框架是花哨的共享庫aka動態的,而不是靜態的。 – MarcusJ