我正在使用Swift 4.2运行Xcode 10 beta。 Xcode希望将带有Swift 4.1代码的Xcode 9.4.1转换为Swift 4.2语法。更改全部为UIView.animate(... options: ...)
。
我使用了.curveEaseIn
之类的选项,该选项以前效果不错,但它想将其更改为UIView.AnimationOptions.curveEaseIn
。
Swift的ENUM类型推断发生了什么?
答案 0 :(得分:6)
在Swift 4.1中是show
。因此,迁移者已将您的class A(object):
def __method(self):
print("hello")
def show(self):
self.__method()
class B(A):
def __method(self):
print("goodbye")
def show(self):
self.__method()
A().show() ## print out hello
B().show() ## print out goodbye
检测为UIViewAnimationOptions.curveEaseIn
,并试图将其转换为.curveEaseIn
。
似乎当前的迁移者不喜欢点引导的符号。
您可以将所有出现的UIViewAnimationOptions.curveEaseIn
手动转换为UIView.AnimationOptions.curveEaseIn
,并且在适当的情况下可以使用Swift类型推断。
您可能要写feature request来建议对迁移器进行改进。
(添加) 尽管我尚未测试,但似乎Xcode 10 beta 3已解决了此问题。
答案 1 :(得分:0)
AnimationOptions
是UIView下现在Swift 4.2中的一个枚举
您还可以查看此git repo,其中包含语法更改列表。 请随时为您在项目中遇到的更改做出贡献。