Ускорение фреймворка - vDSP_zvmags - Swift 4.2 - PullRequest
0 голосов
/ 09 ноября 2018

В Swift 4.0 Xcode 9.4.1 с использованием функции vDSP_zvmags и передачей переменной массива с плавающей точкой inout работает, однако в Swift 4.2 Xcode 10.1 жалуется, что нельзя передавать параметр массива при ожидании типа с плавающей точкой.

//Class variable
private var magnitudes: [Float]!    

self.magnitudes = [Float](repeating: 0.0, count: self.halfSize)
vDSP_zvmags(&(self.complexBuffer!), 1, &self.magnitudes!, 1, UInt(self.halfSize))

Сообщение об ошибке:

Cannot convert value of type '[Float]' to expected argument type 'Float'

& self.magnitudes! подчеркнуто красным.

Может кто-то пролить свет на то, почему это приемлемо в Swift 4.0 и не приемлемо в Swift 4.2? Похоже, что функция не изменилась между двумя функциями. Я проверил документацию Apple и посмотрел документацию по библиотеке vDSP.

1 Ответ

0 голосов
/ 09 ноября 2018

Если переменная класса инициализируется при объявлении пустого массива с плавающей точкой, ошибка исчезает.

...