在Xcode 8中将Swift数组转换为CFArray(Swift 3)

Lim*_*ean 17 swift swift3

这在Xcode 8 beta 6中不再有效:

let colors:CFArray = [fromColor.cgColor, toColor.cgColor]
Run Code Online (Sandbox Code Playgroud)

要么

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

错误是:上下文类型'CFArray'不能与数组文字一起使用

从数组转换为CFArray的最新方法是什么?

vac*_*ama 46

它可以添加演员as CFArray:

let colors = [fromColor.cgColor, toColor.cgColor] as CFArray
Run Code Online (Sandbox Code Playgroud)

或者您可以在通话中添加演员:

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

在Swift 3(Xcode 8 beta 6)中,已删除对桥接类型的隐式转换. 在某些情况下,与此类似,您需要添加显式强制转换才能使其正常工作.