Как создать 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))