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

ma1*_*w28 2 static-libraries swift

为什么Swift不支持静态库

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

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

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

请解释.

mat*_*att 6

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

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

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

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