0

我正在使用 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 类型推断发生了什么?

4

2 回答 2

6

UIViewAnimationOptions.curveEaseIn在 Swift 4.1 中。因此,迁移器已检测到您的.curveEaseInasUIViewAnimationOptions.curveEaseIn并尝试将其转换为UIView.AnimationOptions.curveEaseIn.

似乎当前的迁移者不喜欢点前导符号。

您可以手动将所有出现的UIView.AnimationOptions.curveEaseIn转换为.curveEaseIn,并且 Swift 类型推断会在适当的情况下工作。

您可能想要编写一个功能请求,提议改进迁移器。


(补充)似乎 Xcode 10 beta 3 已经解决了这个问题,虽然我还没有测试过。

Xcode 10 beta 3 发行说明

于 2018-06-30T04:43:26.040 回答
0

AnimationOptions现在在 swift 4.2 中是 UIView 下的枚举

您还可以查看包含语法更改列表的这个 git repo。请随时为您在项目中遇到的更改做出贡献。

https://github.com/alexliubj/Swift-Migration-4.2

于 2018-08-24T23:11:08.083 回答