为什么 CAShapeLayerLineJoin 不能在 tvOS 上编译?

Why CAShapeLayerLineJoin doesn't compile on tvOS?

这不编译:

let a: CAShapeLayerLineJoin = CAShapeLayerLineJoin.miter

错误:

Type 'CAShapeLayerLineJoin' (aka 'NSString') has no member 'miter'

roundbevel

都不是

使用 iOS 目标编译相同的代码。 tvOS 具有部署目标 9.0。这是 CAShapeLayerLineJoin 的文档:https://developer.apple.com/documentation/quartzcore/cashapelayerlinejoin 它说在 tvOS 9.0+ 上可用 此外,当我用 cmd 键单击它时,它会引导我找到与 iOS 目标相同的定义。

编辑:我链接到了错误的文档。正确的说法是 CAShapeLayerLineJoin 可从 tvOS 12+ 获得。

有什么想法吗?

是的,但这与部署目标或 SDK 无关。这取决于 Swift 语言版本。您有两个不同的项目或目标,它们使用两个不同版本的 Swift。在 tvOS 目标上,Swift 版本较旧,这是一个常量字符串,kCALineJoinMiter.