如果我编写Swift 3代码,它将看起来像这样:
let animation = CABasicAnimation(keyPath: #keyPath(CAShapeLayer.path))
Run Code Online (Sandbox Code Playgroud)
但是我尝试对keyPath使用Swift 4新语法,并且得到了:
let keyPath = \CAShapeLayer.path
let animation = CABasicAnimation(keyPath: keyPath) // error line
Run Code Online (Sandbox Code Playgroud)
>错误:无法将类型“ ReferenceWritableKeyPath”的值转换为预期的参数类型“字符串?”
在这种情况下,如何使用Swift 4使用密钥路径?
就目前而言,CABasicAnimation仍然使用旧的StringkeyPaths,因此#keyPath(CAShapeLayer.path)即使您使用的是Swift 4 ,也应该仍然使用。
Apple将来可能会更新其所有API,以利用这些更安全的密钥路径引用。但是目前,您仍然受困于“不安全”的字符串。
| 归档时间: |
|
| 查看次数: |
1786 次 |
| 最近记录: |