【发布时间】:2020-09-03 03:53:21
【问题描述】:
我的应用中有一个代码,我想在 iOS 13 或更高版本上执行该代码。所以,我使用的是标准可用性检查:
if #available(iOS 13.0, *) {
return Color.systemGray6.resolvedColor(with: trait!)
} else {
return Color(red: 0.082, green: 0.118, blue: 0.161, alpha: 1.0)
}
Color 是一个类型别名,它在 iOS 上转换为 UIColor,在 macOS 上转换为 NSColor。我正在尝试用尽可能少的if..else 创建目标的 macOS 版本。
上面的代码应该像NSColor 一样工作,有许多与UIColor 相同的init 方法。问题是,当我构建我的 macOS 目标时,它会抱怨 systemGray6。因此,出于我不知道的原因,macOS 目标通过了#available(iOS 13.0, *) 检查!
为什么会发生,我该如何预防?
【问题讨论】:
标签: ios swift macos conditional-compilation