2014-12-23 3 views
1

Я пытаюсь создать тип фильтра CICrossPolynomial в Swift.Как создать CIVector из массива CGFloat?

Я не уверен, как создать синтаксис для этого.

В документации указан 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?

ответ

3

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))