Изменение синтаксиса Swift 4.2 - что случилось с выводом типа Swift?

Я использую бета-версию Xcode 10 с Swift 4.2. Xcode хочет преобразовать мой Xcode 9.4.1 с кодом Swift 4.1 в синтаксис Swift 4.2. Все изменения UIView.animate(... options: ...).

Я использую такие параметры, как .curveEaseIn, которые раньше работали нормально, но теперь их нужно изменить на UIView.AnimationOptions.curveEaseIn.

Что случилось с выводом типа ENUM в Swift?


person mretondo    schedule 30.06.2018    source источник


Ответы (2)


Это было UIViewAnimationOptions.curveEaseIn в Swift 4.1. Итак, мигратор обнаружил ваш .curveEaseIn как UIViewAnimationOptions.curveEaseIn и пытается преобразовать его в UIView.AnimationOptions.curveEaseIn.

Похоже, текущий мигратор не любит точечную нотацию.

Вы можете вручную преобразовать все вхождения UIView.AnimationOptions.curveEaseIn в .curveEaseIn, и при необходимости будет работать вывод типа Swift.

Вы можете написать запрос функции с предложением улучшения мигратора.


(Дополнение) Кажется, Xcode 10 beta 3 устранил эту проблему, хотя я еще не тестировал.

Примечания к выпуску Xcode 10 beta 3

person OOPer    schedule 30.06.2018

AnimationOptions - это перечисление под UIView теперь в быстрой версии 4.2

Вы также можете взглянуть на это репозиторий git, который содержит список изменений синтаксиса. Пожалуйста, не стесняйтесь вносить свой вклад в изменения, которые вы встретили в своем проекте.

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

person Alex L    schedule 24.08.2018