2016-08-16 19 views
14

To już nie pracuje w Xcode 8 beta 6:Konwersja Swift tablicę CFArray w Xcode 8 (Swift 3)

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

lub

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

Błąd jest: typ kontekstu 'CFArray' nie może może być używany z literałem tablicowym

Jaki jest najnowszy sposób konwersji z tablicy na CFArray?

Odpowiedz

38

To działa, jeśli dodać do obsady as CFArray:

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

lub można dodać do obsady w rozmowy:

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

W Swift 3 (Xcode 8 beta 6), niejawny odlewania do typy mostkowane has been removed. W niektórych przypadkach, takich jak ten, należy dodać rzutowanie jawne, aby działało.

+0

nie działa w najnowszej wersji ze Swift 3.0 –

+0

@ 能 蟹 仔, Właśnie sprawdziłem, że to nadal działa w wydanym Xcode 8 z Swift 3.0. Jeśli masz przykład, który nie działa, opublikuj go jako nowe pytanie. – vacawama

+0

http://stackoverflow.com/q/39553958/1591907 –

Powiązane problemy