我开始从头开始使用SDK。我不确定我是否应该在Swift或Objective-C中编写它。我觉得Swift在很多方面都比Objective-C好,但我的主要问题是 - swift动态库是否支持旧版Swift。假设我在Swift 3.0中编写动态库,是否可以在使用Swift 2.2的项目中使用该动态库?我在一篇正在阅读的文章中找到了这个
动态库是可以链接到的可执行代码块 一个应用程序。此功能允许当前的Swift应用程序链接 随着时间的推移,随着Swift语言的发展,它将迎来更新版本。
这是否意味着我将能够在使用Swift 2.2的项目中运行Swift 3.0中构建的动态库?我也在Apple documentation
中找到了这个首先,Swift 2.3和Swift 3不是二进制兼容的,所以你的应用程序 整个代码库需要选择一个版本的Swift。
我发现这与第一个陈述相当矛盾。我知道使用桥接头在Swift中导入Objective-C库是非常简单的,对于相反的情况是否同样如此?在尝试使Swift库与Objective-C项目一起工作时,我是否会遇到任何问题或障碍。我无法找到解决向后兼容性的任何答案或文章。任何帮助深表感谢。谢谢!
TLDR:使用Swift 3(或更高版本)构建的动态库是否与使用旧版Swift或Objective-C项目的项目兼容
答案 0 :(得分:2)
简单地说,第一个引用的陈述是假的(目前)。
Swift ABI(应用程序二进制接口)尚未最终确定。 ABI是关于函数调用的外观,变量和引用如何存储在真实机器中的约定的集合等。在完成之前,应用程序中的所有Swift模块都必须使用相同版本的Swift进行编译。
有关Swift ABI的更多信息,请参阅Swift ABI Manifesto.