Xcode Swift 2.0地图“;实例成员不能用于“类型”;

Xcode Swift 2.0地图“;实例成员不能用于“类型”;,xcode,swift,dictionary,fft,Xcode,Swift,Dictionary,Fft,我正在尝试学习如何使用swift 2.0创建FFT,但是在编译.map函数时遇到了问题 以下代码在操场中工作,但不能作为swift类的成员在xCode中工作 我收到以下错误“实例成员'sineArraySize'不能用于'FFTAnalyser'类型” import Foundation import Accelerate class FFTAnalyser { let sineArraySize = 64 // Should be power of two for the FFT

我正在尝试学习如何使用swift 2.0创建FFT,但是在编译.map函数时遇到了问题

以下代码在操场中工作,但不能作为swift类的成员在xCode中工作

我收到以下错误“实例成员'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($0) * frequency1 + phase1)
    }

    func plotArray<T>(arrayToPlot:Array<T>) {
        for x in arrayToPlot {
            print(x)
        }
    }
}
<代码>导入基础 进口加速 类FFT分析器{ 设sineArraySize=64//应为FFT的二次幂 let frequency1=4.0 设相位1=0.0 设振幅1=2.0
var sineWave=(0..错误是因为
sineWave
在初始化
self
之前尝试访问
self
属性
sineralysize
和其他属性(初始化发生在定义属性值之后)。要解决此问题,可以执行以下操作:

var sineWave : [Double] = []

init() {
    sineWave = (0..<sineArraySize).map {
        amplitude1 * sin(2.0 * M_PI / Double(sineArraySize) * Double($0) * frequency1 + phase1)
    }
}
var正弦波:[Double]=[]
init(){

正弦波=(0..谢谢你的帮助!我高估了Swift自动初始化变量的能力。只需将所有变量移动到一个方法中,或使用初始化器就解决了问题。