1

在 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 库文档。

4

1 回答 1

1

如果在声明时将类变量初始化为空浮点数组,则错误消失。

于 2018-11-09T10:19:39.787 回答