为什么Swift不支持iO中的静态库

时间:2016-03-20 02:07:35

标签: swift static-libraries

为什么doesn't Swift support static libraries

我看到了这个解释,但我不明白这个推理。

  

当前运行时不附带操作系统,因此静态库将导致最终可执行文件中的多个运行时。对于与较新的OS或Swift的兼容性,静态链接的运行时将更难以修补。 。 。 。运行时间不断变化。我们需要动态链接它以便能够处理未来的前向部署问题。 - 乔格罗夫

https://twitter.com/owensd/status/555060783407591424

请解释。

1 个答案:

答案 0 :(得分:6)

您是否注意到Swift应用程序?这是因为整个Swift运行时嵌入在应用程序中的。 Swift被嵌入在应用程序中的库翻译成Objective-C。

这种令人讨厌的策略的原因是Swift本身仍然在变化和发展(Swift 2.2现在将在任何一天进行最终决定,再次彻底改变语言)。因此,Swift不能像Objective-C那样成为系统的一部分;它处于独立的变化中,速度和方式与系统更新无关。

这种状态使得与静态库的链接技术上非常困难。但动态链接是可能的,因为它是动态的。

稍后,可能在Swift 3进入决赛之后,该语言最终将被冻结,并将成为系统的一部分,就像Objective-C一样。然后静态库将更容易支持,比如Objective-C(Swift应用程序将变得更小!)。