swift swift3

Convertir un arreglo Swift a CFArray en Xcode 8(Swift 3)



swift3 (1)

Esto ya no funciona en Xcode 8 beta 6:

let colors:CFArray = [fromColor.cgColor, toColor.cgColor]

o

let gradient:CGGradient = CGGradient(colorsSpace: CGColorSpaceCreateDeviceRGB(), colors:[fromColor.cgColor, toColor.cgColor], locations:[0.0, 1.0])!

El error es: el tipo contextual ''CFArray'' no se puede usar con el literal de matriz

¿Cuál es la última forma de convertir de array a CFArray?


Funciona si agregas el elenco as CFArray :

let colors = [fromColor.cgColor, toColor.cgColor] as CFArray

o puede agregar el elenco en una llamada:

let gradient = CGGradient(colorsSpace: CGColorSpaceCreateDeviceRGB(), colors:[fromColor.cgColor, toColor.cgColor] as CFArray, locations:[0.0, 1.0])!

En Swift 3 (Xcode 8 beta 6), la conversión implícita a tipos puenteados se ha eliminado. En algunos casos, como este, deberá agregar conversiones explícitas para que funcione.