2

我正在尝试在 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]

但是我如何真正声明这样的 CIVector?有一个具有此签名的构造函数

CIVector(values: <UnsafePointer<CGFloat>>, count: <UInt>)

但是当我尝试

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

我得到错误:

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

你知道我如何正确地创建一个带有 CGFloats 数组的 CIVector 吗?

4

1 回答 1

6

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

let floatArr: [CGFloat] = [1,0,0,0,0,0,0,0,0]
var vector = CIVector(values: floatArr, count: UInt(floatArr.count))
于 2014-12-23T22:09:28.747 回答