【发布时间】:2017-09-09 21:50:25
【问题描述】:
我正在尝试创建一个类似于 Reactable 的应用程序。
用户将能够将“模块”(如振荡器或过滤器)从菜单拖到“播放区”中,并且模块将被激活。
我正在考虑在模块与“游戏区”背景对象相交时对其进行初始化。但是,这需要我自动命名模块,即:
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()
我的应用程序构建良好,但是一旦应用程序开始在模拟器上运行,我就会收到错误:致命错误:索引超出范围
【问题讨论】:
-
数组或集合不适合你吗?
-
我正在尝试基于此thread 的数组。但是,我无法使用数组更改 AKOscillator 函数的参数,例如
osci.frequency = 440等 -
什么类型的麻烦?您不介意通过添加一些代码、遇到的错误并解释为什么数组不适合您来更新您的问题吗?
-
我已经编辑了我的原始帖子以显示我的代码。谢谢
-
Index out of range 与 AudioKit 无关。你使用了错误的
oscCounter。我不确定为什么在添加元素并尝试访问下一个元素(很可能超出范围)之后要增加它。
标签: ios xcode swift3 sprite-kit audiokit