Swift 4.2 语法更改 - Swift 类型推断发生了什么?
Swift 4.2 Syntax change - What happened to Swift type inference?
我是 运行 Xcode 10 beta Swift 4.2。 Xcode 想将我的 Xcode 9.4.1 和 Swift 4.1 代码转换为 Swift 4.2 语法。变化都是UIView.animate(... options: ...)
.
我使用像 .curveEaseIn
这样的选项,它以前工作得很好,但它想将它们更改为 UIView.AnimationOptions.curveEaseIn
。
Swift 的 ENUM 类型推断发生了什么?
在 Swift 4.1 中是 UIViewAnimationOptions.curveEaseIn
。因此,迁移器已将您的 .curveEaseIn
检测为 UIViewAnimationOptions.curveEaseIn
并尝试将其转换为 UIView.AnimationOptions.curveEaseIn
.
目前的迁移者似乎不喜欢点引导符号。
您可以手动将所有出现的 UIView.AnimationOptions.curveEaseIn
转换为 .curveEaseIn
,并且 Swift 类型推断会在适当的情况下起作用。
您可能想写一个feature request建议改进迁移器。
(加法)
似乎 Xcode 10 beta 3 已经解决了这个问题,虽然我还没有测试过。
AnimationOptions
是现在 swift 4.2
中 UIView 下的一个枚举
您还可以查看此 git 存储库,其中包含语法更改列表。
请随时为您在项目中遇到的更改做出贡献。
我是 运行 Xcode 10 beta Swift 4.2。 Xcode 想将我的 Xcode 9.4.1 和 Swift 4.1 代码转换为 Swift 4.2 语法。变化都是UIView.animate(... options: ...)
.
我使用像 .curveEaseIn
这样的选项,它以前工作得很好,但它想将它们更改为 UIView.AnimationOptions.curveEaseIn
。
Swift 的 ENUM 类型推断发生了什么?
在 Swift 4.1 中是 UIViewAnimationOptions.curveEaseIn
。因此,迁移器已将您的 .curveEaseIn
检测为 UIViewAnimationOptions.curveEaseIn
并尝试将其转换为 UIView.AnimationOptions.curveEaseIn
.
目前的迁移者似乎不喜欢点引导符号。
您可以手动将所有出现的 UIView.AnimationOptions.curveEaseIn
转换为 .curveEaseIn
,并且 Swift 类型推断会在适当的情况下起作用。
您可能想写一个feature request建议改进迁移器。
(加法) 似乎 Xcode 10 beta 3 已经解决了这个问题,虽然我还没有测试过。
AnimationOptions
是现在 swift 4.2
您还可以查看此 git 存储库,其中包含语法更改列表。 请随时为您在项目中遇到的更改做出贡献。