objective-c – Objective – C靜態庫及其公共標題 – 什麼是正確的方法?

我正在構建一個將在多個iOS應用程序中使用的靜態庫.

與此同時,我正在使用我的庫處理其中一個應用程序.

在開發過程中,我每天至少會遇到一個令人煩惱的錯誤,即有關未找到庫的頭文件(在我的應用程序專案中).

我瞭解到,在構建靜態庫時,標題可以是Public,Private或Project

我猜我想要在我的庫中公開的每個標題都應該是Public.

我的問題是,管理這些公共標題的最佳方法是什麼?我應該使用#import為我的所有公共標題建立一個主公共頭文件嗎?

Xcode可以為我生成這樣的文件嗎?

另一個主要問題是Public Header Folder Path設定的推薦值是多少?

我的主要目標是將來使用此庫的專案將能夠使用盡可能少的配置(新增連結器標誌,更改使用者標頭搜尋路徑等).

非常感謝你.

關於公共/私人/專案標題,以下是以前的答案以防萬一

=> https://stackoverflow.com/a/8016333/1075192

大多數情況下,C/C++ / Obj-C庫和框架都有一個主標題,包括所有其他標題.例如,Cocoa框架遵循此路徑.

例如,要使用QuartzCore框架宣告CAAnimation,您可以這樣做:

#import "QuartzCore/CAAnimation.h"

要麼

#import "QuartzCore/Quartzcore.h"

“QuartzCore.h”實際上只包含一個標題保護,幷包含該庫的所有其他標題.

在我看來,使用第一個實際上更好,因為它不包括你不需要的所有宣告.但大多數時候我們選擇一次性包含所有內容的懶惰解決方案.

我不知道你是否可以直接使用xCode生成這個,無論如何它很容易自己做,因為它只是一堆包含或匯入.

公共頭文件夾路徑通常是“MyLibraryOrFramework / Headers”(例如,只需檢視任何Cocoa的框架).

最後,如果你想要一些真正可重用且無縫的東西,我建議你使用框架而不是靜態庫(幾乎相似).

看看這個很好的答案,瞭解為什麼它完全符合你的需要:

=> https://stackoverflow.com/a/6389802/1075192

Voilà,希望這個答案有所幫助.

翻譯自:https://stackoverflow.com/questions/10529604/objective-c-static-library-and-its-public-headers-what-is-the-right-way