Difficultés de conversion à Swift 3

Après la conversion de Swift 2 en Swift 3 (même après la conversion de edit-> convert -> en syntaxe swift actuelle), je reçois de nombreuses erreurs. Notamment:

ce

Je suis montré au total 90 erreurs pour mon projet qui fonctionnait bien dans Swift 2 avant que j’ai téléchargé cette version bêta Xcode 8.0 et convertie en Swift 3

Est-ce une erreur de conversion que je commets?

La plupart d’entre eux sont des solutions simples, en appuyant simplement sur le bouton rouge, et le fait d’avoir Xcode le répare pour vous! D’autres incluent:

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 

Et souvenez-vous toujours d’utiliser la fonction utile “Corriger tout ce qui concerne” qui se trouve dans l’éditeur -> Réparer tout

Je convertissais un projet et Xcode ne m’aidait pas pour les corrections, alors j’ai eu recours à quelques recherches et remplacements de regex: –

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

Notez qu’ils ne connaissent pas les parenthèses nestedes, mais probablement assez bonnes pour 90% des cas.