我正在使用 Swift 4.2 运行 Xcode 10 beta。Xcode 想要将我的 Xcode 9.4.1 与 Swift 4.1 代码转换为 Swift 4.2 语法。变化都是UIView.animate(... options: ...)
。
我使用的选项.curveEaseIn
之前效果很好,但它想将它们更改为UIView.AnimationOptions.curveEaseIn
.
Swift 的 ENUM 类型推断发生了什么?
它UIViewAnimationOptions.curveEaseIn
在 Swift 4.1 中。因此,迁移器已检测到您的.curveEaseIn
asUIViewAnimationOptions.curveEaseIn
并尝试将其转换为UIView.AnimationOptions.curveEaseIn
.
似乎当前的迁移者不喜欢点前导符号。
您可以手动将所有出现的UIView.AnimationOptions.curveEaseIn
转换为.curveEaseIn
,并且 Swift 类型推断会在适当的情况下工作。
您可能想要编写一个功能请求,提议改进迁移器。
(补充)似乎 Xcode 10 beta 3 已经解决了这个问题,虽然我还没有测试过。
AnimationOptions
现在在 swift 4.2 中是 UIView 下的枚举
您还可以查看包含语法更改列表的这个 git repo。请随时为您在项目中遇到的更改做出贡献。