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.