为什么仅通过导入UIKit框架就可以使用Foundation框架中定义的类型?

时间:2019-05-02 06:30:24

标签: ios swift uikit foundation

为什么仅通过导入UIKit框架就可以使用Foundation框架中定义的类型?

import UIKit

// String is a Type defined in Foundation framework
let foo: String = ""

我了解UIKit框架取决于Foundation框架。

// Dependency
Application --> UIKit --> Foundation

是否有任何允许应用程序间接使用依赖框架的编译器选项?

在创建自己的嵌入式框架时,我想指定任何此类选项。

1 个答案:

答案 0 :(得分:0)

我可能需要对此进行更正,但是我对此的理解是没有。

即使UIKit依赖于Foundation,UIKit也不会包含。如果真是这样,这将导致不可估量的膨胀,因为大多数Framework使用Foundation中定义的类型。

如果希望框架能够在其依赖的框架中“传递”类型和方法,则需要包括其依赖的框架并允许应用程序直接访问它们,或者您可以在自己的框架中添加一些方法签名和typedef声明,以缩小差距,从而获得更好的表达。

值得一提的是,This article on the swift.org forums可能会帮助您完成所需的工作,尽管到目前为止,似乎您的工作似乎尚未得到正式支持。