我正在尝试创建类似于Reactable的应用程序。AudioKit中对象的动态命名(SpriteKit)
用户可以将“模块”(如振荡器或滤波器)从菜单拖入“播放区域”,模块将被激活。
我正在考虑初始化模块,因为它们与“play area”背景对象相交。然而,这需要我自动命名模块,即:
let osci = AKOscillator()
其中OSCI会自动计数为:
let osci1 = AKOscillator()
let osci2 = AKOscillator()
...
等
我如何能做到这一点?
感谢
编辑:我试图通过创建
var osciArray = [AKOscillator]()
,并在我的功能阵列来使用数组来添加一个振荡器,这是我的代码:
let oscis = AKOscillator()
osciArray.append(oscis)
osciArray[oscCounter].frequency = freqValue
osciArray[oscCounter].amplitude = 0.5
osciArray[oscCounter].start()
selectedNode.userData = ["counter": oscCounter]
oscCounter += 1
currentOutput = osciArray[oscCounter]
AudioKit.output = currentOutput
AudioKit.start()
我的应用程序构建得很好,但是一旦应用程序开始在模拟器上运行,我会收到错误:致命错误:索引超出范围
不为阵列或收集工作吗? – Valdmer
我正在尝试一个基于这个[线程]的数组(http://stackoverflow.com/questions/27716931/create-a-variable-in-swift-with-dynamic-name)。 但是,我遇到麻烦,用数组更改AKOscillator函数的参数,如 'osci.frequency = 440'等 –
什么类型的麻烦?你不介意通过添加一些代码来更新你的问题,你得到的错误,并解释为什么阵列不适合你? – Valdmer