我正在構建一個Cocoa Touch靜態庫。我應該如何決定是否將頭文件複製爲公共,私人或項目?Xcode:複製標題:公開還是私人還是項目?
回答
公開:該接口已完成並準備供您的產品的客戶使用。公共標題作爲可讀源代碼不受限制地包含在產品中。
Private:該接口不適合您的客戶,也可能處於開發的早期階段。產品中包含私人頭文件,但標記爲「私人」。因此這些符號對所有客戶都是可見的,但客戶應該明白他們不應該使用它們。
項目:該接口僅供當前項目中的實現文件使用。項目標題不包含在目標中,目標代碼除外。這些符號對客戶來說根本不可見,只對您有用。
來源: Xcode開發庫>工具&語言>的IDE>項目編輯器幫助>設置一個頭文件
蘭迪的回答是好,給你所有的相關背景的可見性。我想添加一些信息來幫助你根據你如何期望你的圖書館將被使用。
項目:如果您要發佈您的項目,並希望用戶將自己的項目納入自己的子項目中,則應確保您的標題被標記爲「項目」。不這樣做會導致這樣的問題: Xcode 4 Archive Version Unspecified
請注意,這適用於每個子項目...包括子項目的子項目,遞歸。
PUBLIC:如果你希望你的庫的用戶只鏈接對你的對象(而不是有你的原來的項目),請確保您的標題被標記爲「公共」(僅適用於頭,他們將需要參考至)。
這裏最重要的一點是要記住:由於上面引用的錯誤(由於xcode中的錯誤:如果一個庫有公共頭文件,因此Apple現在無法簡單地「分發庫」並讓用戶決定如何使用它,並且已嵌入,Xcode存檔程序沒有解決方法) – Adam
@Adam,如果您在討論Xcode中的錯誤,請包含發行版編號。所以答案會持續很長時間,現在bug不會成爲$ SOME_RELEASE之後的bug。 –
@JamesMoore SO的設計非常適合隨時間變化的答案 - 我在這裏沒有看到問題。除此之外,當蘋果開始爲Xcode發佈發行說明時(我相信在蘋果發佈它們之前大多數Xcode更改將從發行說明中刪除),並開始承認已知的錯誤,我們將有時間手動執行這些更新。在此之前,不斷編輯和重新編輯並重新檢查與Xcode上的主要錯誤相關的許多SO帖子太費事了。 – Adam
- 1. 公立還是私人?
- 2. 應該複製構造函數是私人的還是公開的
- 3. 推送渠道:公共還是私人?
- 4. 檢查Instagram帳戶是公開還是私人的
- 5. 確定Facebook的帖子是公開的還是私人的ID?
- 6. Android:AsyncTask建議:私人課還是公開課?
- 7. 如何知道pdb文件是公共還是私人?
- 8. 模型類屬性應該是私人還是公共?
- 9. 這個功能應該是公共還是私人?
- 10. 吸氣劑和吸附劑是私人還是公用?
- 11. 搞清楚IP地址是公開還是私人用於廚師食譜
- 12. IBOulets和IBActions應該是私人的,內部的還是公開的3?
- 13. 如何知道Liferay主題中的頁面是私人還是公共?
- 14. 課堂上的靜態地圖 - 公共還是私人?
- 15. Facebook圖形對象 - 公共還是私人?
- 16. 環保對象應該公開還是私密?
- 17. 應該將注入的依賴項公開訪問還是私有?
- 18. 如何查找,證書是私人證書還是公共證書
- 19. M2Crypto:PKey是對公鑰還是私鑰的引用?
- 20. AES算法是公鑰還是私鑰的關鍵?
- 21. 這是複製還是引用?
- 22. 公共還是常量?
- 23. xen dom0是客人還是主人?
- 24. 是否可以在Netbeans的項目視圖中顯示某個類是公共還是私有包?
- 25. Git恢復還原還是什麼?
- 26. mod_wsgi問題還是?
- 27. 是Unicorn還是Selenium問題?
- 28. 私人公鑰是不同
- 29. WP7 - 確定文化是英制還是公制
- 30. 「公共靜態」還是「靜態公共」?
蘭迪 - 您應該將Power的答案合併到您的答案中,使其成爲更好的單一答案,恕我直言。 –
這是不正確的。蘋果可能已經記錄 - 但他們沒有實現它。 「公共」標題將阻止你分發你的應用程序(Xcode中的錯誤),除非你解除你的項目(不嵌入項目文件!) – Adam
有沒有人知道在哪裏HECK是XCode 5中頭文件的選項? – mindbomb