48 votes

Difficultés à convertir en Swift 3

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

ce

On affiche un total de 90 erreurs pour mon projet qui fonctionnait correctement dans Swift 2 avant de télécharger cette version bêta de Xcode 8.0 et de la convertir en Swift 3.

Est-ce une erreur de conversion que je fais?

187voto

Pranav Wadhwa Points 5726

La plupart d'entre eux sont des solutions faciles, simplement en appuyant sur le bouton rouge, et d'avoir Xcode fixer pour vous! Les autres sont:

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

12voto

Sierra101 Points 221

Et souvenez-vous toujours d’utiliser la fonction utile "Tout corriger dans la portée" qui peut être trouvée dans Editeur -> Tout corriger dans la portée

1voto

Echelon Points 1002

J'étais en train de convertir un projet et Xcode ne m'aidait pas avec les correctifs. J'ai donc eu recours à deux méthodes de recherche et de remplacement des expressions rationnelles: -

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

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

Notez qu'ils ne sont pas au courant des parenthèses imbriquées, mais qu'ils sont probablement suffisants pour 90% des cas.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X