swift swift3 xcode8 ios10

Dificultades para convertir a Swift 3



swift3 xcode8 (3)

Después de convertir de Swift 2 a Swift 3 (incluso después de convertir edit-> convert -> a la sintaxis rápida actual) recibo muchos errores. Especialmente:

Me muestran un total de 90 errores para mi proyecto que funcionaba bien en Swift 2 antes de descargar este beta Xcode 8.0 y convertirlo a Swift 3

¿Esto es un error de conversión que estoy haciendo?


Estaba convirtiendo un proyecto y Xcode no me estaba ayudando con ninguna corrección, así que recurrí a un par de búsquedas y reemplazos de expresiones regulares:

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

Tenga en cuenta que no son conscientes de paréntesis anidados, pero probablemente lo suficientemente bueno para el 90% de los casos.


La mayoría de ellos son soluciones fáciles, simplemente tocando el botón rojo y teniendo Xcode lo arregla para usted. Otros incluyen:

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


Y recuerde siempre usar la útil función "Reparar todo en el alcance" que se puede encontrar en Editor -> Reparar todo en el alcance