【问题标题】:Swift 4.2 Syntax change - What happened to Swift type inference?Swift 4.2 语法更改 - Swift 类型推断发生了什么?
【发布时间】:2018-06-30 04:34:22
【问题描述】:

我正在使用 Swift 4.2 运行 Xcode 10 测试版。 Xcode 想要将我的 Xcode 9.4.1 与 Swift 4.1 代码转换为 Swift 4.2 语法。改动的都是UIView.animate(... options: ...)

我使用像 .curveEaseIn 这样的选项,它以前运行良好,但它想将它们更改为 UIView.AnimationOptions.curveEaseIn

Swift 的 ENUM 类型推断发生了什么?

【问题讨论】:

    标签: ios swift xcode10


    【解决方案1】:

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

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

    您可以手动将所有出现的UIView.AnimationOptions.curveEaseIn 转换为.curveEaseIn,如果合适,Swift 类型推断将起作用。

    您可能想写一个feature request 建议改进迁移器。


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

    Xcode 10 beta 3 Release Notes

    【讨论】:

      【解决方案2】:

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

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

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多