Xcode Swift 2.0地图“;实例成员不能用于“类型”;
我正在尝试学习如何使用swift 2.0创建FFT,但是在编译.map函数时遇到了问题 以下代码在操场中工作,但不能作为swift类的成员在xCode中工作 我收到以下错误“实例成员'sineArraySize'不能用于'FFTAnalyser'类型”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
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自动初始化变量的能力。只需将所有变量移动到一个方法中,或使用初始化器就解决了问题。