【发布时间】:2019-04-12 17:33:52
【问题描述】:
在 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 库文档。
【问题讨论】:
-
无法重现,但问题取决于您的属性声明,未显示。可以发minimal reproducible example 吗?
-
@MartinR 感谢您的回复,我将编辑我的问题
-
@MartinR 似乎如果我将幅度初始化为空浮点数组作为类变量然后它可以工作......仍然不明白问题是什么......
标签: ios swift accelerate-framework swift4.2 vdsp