在框架中,我們使用Swift和ObjC,以便Swift實例在ObjC方法中實例化。爲了做到這一點,我們必須將這些swift文件公開/公開,以便它們出現在SWIFT_INSTALL_OBJC_HEADER(OurModule-Swift.h)中,然後由ObjC導入。 問題是,我們想從框架的公共接口隱藏這些Swift類。蘋果說:framwork中的私有Swift和ObjC依賴
對於框架的目標,只能用
public
或open
修改聲明出現在生成的頭。只要它們在繼承自Objective-C類的類中聲明,仍然可以在框架的Objective-C部分中使用標有internal
修飾符的Swift方法和屬性。有關訪問級別修飾符的更多信息,請參閱Swift編程語言(Swift 3.1)中的訪問控制。
所以理論上應該可以從ObjC創建內部的swift類,但它似乎不起作用。有任何想法嗎?
我猜它的作品,但它似乎很難保持和大量的手動工作。與https://developer.apple.com/library/content/documentation/MacOSX/Conceptual/BPFrameworks/Tasks/ExportingInterfaces.html#//apple_ref/doc/uid/20002260-97049完全相同,您可以限制API但仍然從手生成/寫入導出文件似乎不是最好的事情。 – Fishman