在 Swift 3 自动将 CGRectMake 更新为 CGRect
Update CGRectMake to CGRect in Swift 3 Automatically
既然 CGRectMake、CGPointMake、CGSizeMake 等已在 Swift 3.0 中删除,是否有任何方法可以像 CGRectMake(0,0,w,h) to CGRect(x:0,y:0,width:w,height:h)
那样自动更新所有初始化。手动过程..很痛苦。
不确定为什么当我将代码转换为当前 Swift 语法时 Apple 不自动转换它...
最简单的解决方案可能就是重新定义Apple拿走的功能。示例:
func CGRectMake(_ x: CGFloat, _ y: CGFloat, _ width: CGFloat, _ height: CGFloat) -> CGRect {
return CGRect(x: x, y: y, width: width, height: height)
}
将其放入您的模块中,所有对 CGRectMake
的调用将再次起作用。
苹果确实提供了这个功能。您只需前往:
编辑 > 转换 > 到最新的Swift 语法...
然后按照屏幕提示操作。
这将解决您的语法问题,您不必为所有已删除的函数创建新函数。
简短回答:不要这样做。不要让 Apple 左右你。我讨厌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"就完事了。
既然 CGRectMake、CGPointMake、CGSizeMake 等已在 Swift 3.0 中删除,是否有任何方法可以像 CGRectMake(0,0,w,h) to CGRect(x:0,y:0,width:w,height:h)
那样自动更新所有初始化。手动过程..很痛苦。
不确定为什么当我将代码转换为当前 Swift 语法时 Apple 不自动转换它...
最简单的解决方案可能就是重新定义Apple拿走的功能。示例:
func CGRectMake(_ x: CGFloat, _ y: CGFloat, _ width: CGFloat, _ height: CGFloat) -> CGRect {
return CGRect(x: x, y: y, width: width, height: height)
}
将其放入您的模块中,所有对 CGRectMake
的调用将再次起作用。
苹果确实提供了这个功能。您只需前往:
编辑 > 转换 > 到最新的Swift 语法...
然后按照屏幕提示操作。
这将解决您的语法问题,您不必为所有已删除的函数创建新函数。
简短回答:不要这样做。不要让 Apple 左右你。我讨厌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"就完事了。