Swift 2.0 地图 "Instance member cannot be used on type"

Swift 2.0 Map "Instance member cannot be used on type"

我正在尝试学习如何使用 swift 2.0 创建 FFT,但是我无法编译 .map 函数。

以下代码在 playground 中有效,但在 xCode 中作为 swift class 的成员无效。

我收到以下错误消息“实例成员 'sineArraySize' 不能用于类型 'FFTAnalyser'

import Foundation
import Accelerate

class FFTAnalyser {
    let sineArraySize = 64 // Should be power of two for the FFT

    let frequency1 = 4.0
    let phase1 = 0.0
    let amplitude1 = 2.0

    var sineWave = (0..<sineArraySize).map {
        amplitude1 * sin(2.0 * M_PI / Double(sineArraySize) * Double([=12=]) * frequency1 + phase1)
    }

    func plotArray<T>(arrayToPlot:Array<T>) {
        for x in arrayToPlot {
            print(x)
        }
    }
}

如有任何帮助,我们将不胜感激。 谢谢

错误是因为 sineWaveself 初始化之前尝试访问 self 属性 sineArraySize 和其他(初始化发生在定义值之后属性)。要解决此问题,您可以这样做:

var sineWave : [Double] = []

init() {
    sineWave = (0..<sineArraySize).map {
        amplitude1 * sin(2.0 * M_PI / Double(sineArraySize) * Double([=10=]) * frequency1 + phase1)
    }
}