【问题标题】:Accelerate framework - vDSP_zvmags - Swift 4.2加速框架 - vDSP_zvmags - Swift 4.2
【发布时间】: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


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-04-05
    • 2017-01-27
    • 2017-11-03
    • 1970-01-01
    • 2019-01-08
    • 1970-01-01
    相关资源
    最近更新 更多