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)
}
}
}
如有任何帮助,我们将不胜感激。
谢谢
错误是因为 sineWave
在 self
初始化之前尝试访问 self
属性 sineArraySize
和其他(初始化发生在定义值之后属性)。要解决此问题,您可以这样做:
var sineWave : [Double] = []
init() {
sineWave = (0..<sineArraySize).map {
amplitude1 * sin(2.0 * M_PI / Double(sineArraySize) * Double([=10=]) * frequency1 + phase1)
}
}
我正在尝试学习如何使用 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)
}
}
}
如有任何帮助,我们将不胜感激。 谢谢
错误是因为 sineWave
在 self
初始化之前尝试访问 self
属性 sineArraySize
和其他(初始化发生在定义值之后属性)。要解决此问题,您可以这样做:
var sineWave : [Double] = []
init() {
sineWave = (0..<sineArraySize).map {
amplitude1 * sin(2.0 * M_PI / Double(sineArraySize) * Double([=10=]) * frequency1 + phase1)
}
}