Как создать CIVector из массива CGFloat?

Я пытаюсь создать тип фильтра CICrossPolynomial в Swift.

Я не уверен, как создать синтаксис, чтобы сделать это, однако.

Документация указывает 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)

Знаете ли вы, как я могу правильно создать CIVector с массивом CGFloats?

1 ответ

Решение

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))
Другие вопросы по тегам