如何从CGFloat数组创建CIVector?

Agg*_*sor 2 xcode unsafe-pointers ios cifilter swift

我试图在Swift中创建CICrossPolynomial过滤器类型.

我不确定如何创建语法来执行此操作.

文档指定了一个CIVector,它有一个浮点数组?

A CIVector object whose display name is RedCoefficients.

Default value: [1 0 0 0 0 0 0 0 0 0] Identity: [1 0 0 0 0 0 0 0 0 0]
Run Code Online (Sandbox Code Playgroud)

但是我该如何宣布这样的CIVector呢?有一个具有此签名的构造函数

CIVector(values: <UnsafePointer<CGFloat>>, count: <UInt>)
Run Code Online (Sandbox Code Playgroud)

但是,当我尝试

var floatArr:Array<CGFloat> = [1,0,0,0,0,0,0,0,0]
var vector = CIVector(values: floatArr, count: floatArr.count)
Run Code Online (Sandbox Code Playgroud)

我收到错误:

Cannot invoke 'init' with an argument list type (values: @lvaue Array<CGFloat>, count:Int)
Run Code Online (Sandbox Code Playgroud)

你知道如何用一系列CGFloats正确创建一个CIVector吗?

Mar*_*n R 5

floatArr.count具有类型Int,但count:参数具有类型UInt,因此您需要显式转换它:

let floatArr: [CGFloat] = [1,0,0,0,0,0,0,0,0]
var vector = CIVector(values: floatArr, count: UInt(floatArr.count))
Run Code Online (Sandbox Code Playgroud)