困难转换为Swift 3

从Swift 2转换到Swift 3(甚至在将edit-> convert – >转换为当前的swift语法之后),我得到了很多错误。 特别:

这个

我显示了我的项目总共90个错误,在Swift 2中工作正常,然后我下载了这个beta Xcode 8.0并转换成了Swift 3

这是我正在犯的转换错误吗?

他们大多是简单的修复,只需轻点红色button,让Xcode为您解决它! 其他包括:

的CGRect

Swift 2:

let frame = CGRectMake(0, 0, 20, 20) 

Swift 3:

 let frame = CGRect(x: 0, y: 0, width: 20, height: 20) 

CGPoint

Swift 2:

 let point = CGPointMake(0, 0) 

Swift 3:

 let point = CGPoint(x: 0, y: 0) 

CGSize

Swift 2:

 let size = CGSizeMake(20, 20) 

Swift 3:

 let size = CGSize(width: 20, height: 20) 

CGRectGetMidX

Swift 2:

 CGRectGetMidX(view) 

Swift 3:

 view.midX 

CGRectGetMidY

Swift 2:

 CGRectGetMidY(view) 

Swift 3:

 view.midY 

的UIColor

Swift 2:

 let color = UIColor.redColor() 

Swift 3:

 let color = UIColor.red 

“NS”

Swift 2:

 NSTimer NSData NSError 

Swift 3:

 Timer Data Error 

UserDefaults

Swift 2:

 NSUserDefaults.standardUserDefaults().//something 

Swift 3:

 UserDefaults.standard.//something 

并且始终记住使用有用的“Fix all in Scope”function,可以在Editor-> Fix all in Scope中find这个function

我正在转换一个项目,Xcode没有帮助我的任何修复,所以我诉诸几个正则expression式search和replace:

 CGPointMake\((.*),[ ]*([^\)]+)\) CGPoint(x:$1, y:$2) CGSizeMake\((.*),[ ]*([^\)]+)\) CGSize(width:$1, height:$2) 

注意他们不知道嵌套的括号,但可能对90%的案例足够好。