Swift:如何避免执行版本检查

标签 swift macos swift-package-manager

我正在构建一个 Swift 库。在我的库中,我定义了一个包含 DateInterval 的结构。

struct A {
    let date = DateInterval()
}

但是,当尝试构建我的库时,我收到以下错误:

'DateInterval' is only available on OS X 10.12 or newer'

因此,我向该结构添加了一个 @available(OSX 10.12, *) 属性。

现在的问题是,每当我创建该结构的实例时,我都被迫执行版本检查:

if #available(OSX 10.12, *) {
    let foo = A()
} else {
    // Fallback on earlier versions
}

我不需要我的库在 10.12 之前的 macOS 版本上运行;有什么方法可以向编译器表明这一点,这样我就不必每次使用这个结构时都执行繁琐的版本检查?

最佳答案

您应该在项目设置中将库的部署目标更改为 macOS 10.12。

Deployment Target changed to 10.12

关于Swift:如何避免执行版本检查,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46514418/

相关文章:

swift - 如何通过更改单元格的高度来创建动态 TableView 页脚

ios - 将UIView附加到UITextView

swift - 如何使用 Swift Package Manager 更新单个依赖项?

swift - 在 generate-xcodeproj 之后,哪些步骤可以将 SPM 生成的 Xcode 项目静态链接为另一个 Xcode 项目中的子项目?

swift - 核心动画,Swift : how to animate NSWindow

Swift 实现 LiteralConvertible 协议(protocol)

macos - 从boxen卸载nodenv

xcode - c++ 线程本地存储 clang-503.0.40 (Mac OSX)

bash - 如何在 Mac OS X 上的 bash 脚本中获取默认浏览器名称

xcode - 如何处理 Swift 包的依赖工件校验和?