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