在Swift 3中自动更新CGRectMake到CGRect
现在CGRectMake,CGPointMake,CGSizeMake等已经在Swift 3.0中被移除了,有什么办法可以自动更新所有的初始化,比如从CGRectMake(0,0,w,h) to CGRect(x:0,y:0,width:w,height:h)
。 手动过程是相当痛苦的。
不知道为什么苹果不会自动转换,当我将代码转换为当前迅速语法…
苹果实际上提供这个function。 所有你需要做的就是去:
编辑 > 转换 > 到最新的Swift语法…
然后按照屏幕提示进行操作。
这将解决你的语法问题,你将不必为所有的被删除的函数做出新的function。
最简单的解决scheme可能只是重新定义苹果拿走的function。 例:
func CGRectMake(_ x: CGFloat, _ y: CGFloat, _ width: CGFloat, _ height: CGFloat) -> CGRect { return CGRect(x: x, y: y, width: width, height: height) }
把它放在你的模块中,所有对CGRectMake
调用都会重新开始。
简短的回答:不要这样做。 不要让苹果老大你在身边。 我讨厌 CGRect(x:y:width:height:)
。 我已经提交了一个错误。 我认为初始化程序应该是CGRect(_:_:_:_:)
,就像CGRectMake
一样。 我已经在CGRect上定义了一个扩展,它提供了这个扩展,并且在我启动的时候把这个扩展插入到每一个项目中。
extension CGRect { init(_ x:CGFloat, _ y:CGFloat, _ w:CGFloat, _ h:CGFloat) { self.init(x:x, y:y, width:w, height:h) } }
这样,我所要做的就是把CGRectMake改成CGRect,我就完成了。