gpt4 book ai didi

ios - Swift 包管理器 : How best to indicate platform dependent code?

转载 作者:行者123 更新时间:2023-12-04 17:28:38 25 4
gpt4 key购买 nike

Swift 包管理器 (SPM) 允许支持不同的平台(例如 iOS、macOS)。我正在调整 Swift 库以使用 SPM,需要共享 iOS 和 macOS 的一些代码,但也有一些差异。

我在 Facebook 库中看到过类似的例子: https://github.com/facebook/facebook-ios-sdk/blob/master/Package.swift在这种情况下,他们使用多个目标,每个目标都有自己的(独立)代码。这不是平台依赖的例子,而是目标依赖的例子。

我看到两条前进的道路:

1) 为 iOS 和 macOS 使用单独的库目标——并使用与 Facebook 类似的方法,但大部分代码将在目标之间共享。我不完全确定 SPM 是否允许跨目标共享代码。这里的一个缺点纯粹是语法糖——命名差异。不幸的是,您必须在 iOS 上导入“MyLibrary_iOS”,在 macOS 上导入“MyLibrary_macOS”。

2) 有一个针对 iOS 和 macOS 的单一目标,但在源代码中嵌入条件编译以有条件地包含/排除特定文件。这没有上面的命名问题。但是必须执行此条件编译似乎很不干净。

还有其他建议吗?谢谢!

最佳答案

等待即将发布的 Swift 5.3。这是通过 SE-0273 添加的.

关于ios - Swift 包管理器 : How best to indicate platform dependent code?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61730642/

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