加速框架 - vDSP_zvmags - Swift 4.2
Accelerate framework - vDSP_zvmags - Swift 4.2
在 Swift 4.0 Xcode 9.4.1 中使用 vDSP_zvmags 函数并传递一个 inout 浮点数组变量但是在 Swift 4.2 Xcode 10.1 中有效抱怨在期望 float 类型时无法传递数组参数。
//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 库文档。
如果 class 变量在声明为空浮点数组时被初始化,错误就会消失。
在 Swift 4.0 Xcode 9.4.1 中使用 vDSP_zvmags 函数并传递一个 inout 浮点数组变量但是在 Swift 4.2 Xcode 10.1 中有效抱怨在期望 float 类型时无法传递数组参数。
//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 库文档。
如果 class 变量在声明为空浮点数组时被初始化,错误就会消失。