如何使用斯威夫特4的keyPath在CAShapeLayer动画

问题描述:

如果我写的斯威夫特3码就应该是这样的:如何使用斯威夫特4的keyPath在CAShapeLayer动画

let animation = CABasicAnimation(keyPath: #keyPath(CAShapeLayer.path)) 

但我试图用斯威夫特4个新语法的keyPath和我:

let keyPath = \CAShapeLayer.path 
let animation = CABasicAnimation(keyPath: keyPath) // error line 

>错误:无法将类型'ReferenceWritableKeyPath'的值转换为期望的参数类型'String?'

我怎么能在这种情况下,与SWIFT 4使用关键路径?

至于现在CABasicAnimation仍然使用旧的String keyPaths所以你还是应该使用#keyPath(CAShapeLayer.path)即使您正在使用雨燕4

苹果可能会更新它的所有的API在将来利用这些安全的关键路径引用。但现在你被卡住了“不安全”的字符串。