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

Why can I just use the types defined in the Foundation framework just by importing the UIKit framework?

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

import UIKit

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

我了解 UIKit 框架依赖于 Foundation 框架。

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

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

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

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

尽管 UIKit 依赖于 Foundation,但 UIKit 不包含它。如果真是这样,它将导致无法估量的膨胀,因为大多数框架都使用 Foundation 中定义的类型。

如果您希望框架能够 'pass on' 它所依赖的框架中的类型和方法,您需要包含它所依赖的框架并允许应用程序直接访问它们,或者您可以在自己的框架中添加一些方法签名和 typedef 声明来弥补差距,因为需要更好的表达方式。

还值得一看 This article on the swift.org forums,它可能会帮助您完成所需的工作,尽管到目前为止,您尝试做的事情似乎没有得到官方支持。