在此tutorial on how to use CocoaPods中,我无法理解以下段落:
与Objective-C不同,标准的Swift运行时库不是 包含在iOS中!这意味着您的框架必须包含必要的内容 Swift运行时库。因此,使用Swift编写的pod必须 被创建为动态框架。如果Apple允许Swift静态 库,它会导致不同库中的重复符号 使用相同的标准运行时依赖项。
以下是我的问题:
“标准Swift运行时库”究竟是什么? Swift Standard Library是一个这样的标准swift运行时库,我在swift中编写的框架会被认为是一个快速的运行时库吗?
“Swift运行时库未包含在iOS中”究竟是什么意思?我想我无法推断出“iOS”所指的内容。
非常感谢有关本段的任何其他见解,链接,资源或解释!
修改:
阅读runtime library wiki article后,我不再对 Q1 感到困惑。以下段落为我澄清了这一点:
不应将运行时库的概念与a混淆 像应用程序创建的普通程序库 程序员或由第三方交付,也不是动态库, 表示在运行时链接的程序库。例如,C 编程语言只需要一个最小的运行时库(通常 称为crt0),但定义了一个大型标准库(称为C标准) 库)必须由每个实现提供。
但是我仍然对 Q2 感到困惑。
答案 0 :(得分:8)
Objective C有一个稳定的(不变的)运行时库,因此有一个由OS(macOS / iOS)提供的库共享副本,可供所有需要它的应用程序使用。相比之下,Swift是一种快速发展的语言,这意味着它的运行时库在版本之间经历了巨大的变化。因此,Xcode将Swift运行时库的副本捆绑在每个应用程序的一部分中,以确保应用程序可以使用运行时库的正确版本(应用程序使用的版本)的副本。