gpt4 book ai didi

ios - Swift 动态库是否向后兼容旧的 swift 版本项目

转载 作者:可可西里 更新时间:2023-11-01 01:22:35 26 4
gpt4 key购买 nike

我开始从头开始开发 SDK。我不太确定我应该用 Swift 还是 Objective-C 编写它。我觉得 Swift 在很多方面都比 Objective-C 好,但我的主要问题是 - swift 动态库是否支持旧版本的 Swift。假设我在 Swift 3.0 中编写动态库,我能否在使用 Swift 2.2 的项目中使用该动态库?我在阅读的一篇文章中发现了这一点

Dynamic libraries are executable chunks of code that can be linked to an application. This feature allows current Swift applications to link against newer versions of the Swift language as it evolves over time.

这是否意味着我将能够在使用 Swift 2.2 的项目中运行使用 Swift 3.0 构建的动态库?我还在 Apple documentation 中找到了这个

First, Swift 2.3 and Swift 3 are not binary compatible so your app's entire code base needs to pick one version of Swift.

我发现这与第一个陈述非常矛盾。我知道使用桥接 header 在 Swift 中导入 Objective-C 库非常简单,相反的情况是否也是如此?在尝试使 Swift 库与 Objective-C 项目一起工作时,我会遇到任何问题或障碍吗?我找不到任何解决向后兼容性问题的答案或文章。任何帮助深表感谢。谢谢!

TLDR:使用 Swift 3(或更高版本)构建的动态库是否与使用旧版本 Swift 的项目或 Objective-C 中的项目兼容

最佳答案

简单地说,第一个引用的语句是错误的(当前)。

Swift ABI(应用程序二进制接口(interface))尚未最终确定。 ABI 是关于函数调用外观、变量和引用如何存储在真实机器中等的一组约定。在最终确定之前,应用程序中的所有 Swift 模块都必须使用相同版本的 Swift 进行编译。

有关 Swift ABI 的更多信息,请参阅 Swift ABI Manifesto.

关于ios - Swift 动态库是否向后兼容旧的 swift 版本项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43249602/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com