当我点击按钮时,我正试图在我的项目文件中播放声音。
按钮连接到CollectionViewCell,这是重复的,所以我不能在我的ViewController上创建插座。
相反,我将一个动作插座放到我的ViewController上,以便在按下按钮时播放声音。
let musicFile = Bundle.main.path(forResource: "\(soundNames["\(sender.currentTitle)"])", ofType: "mp3")
我在这里要做的是;我的按钮已经根据我之前创建的数组命名,所以如果我能得到按钮的名称,那就确定.mp3文件在我的项目中并且它将会播放。
但上面提供的代码行给出了错误:
Cannot subscript a value of type '[String]' with an index of type 'String'
我该如何使这项工作?如有必要,我可以提供更多代码。
提前致谢。
答案 0 :(得分:0)
删除"\(...)"
表示法。你不是在这里打印;你正在传递一个实际的字符串。直接使用实际值来形成该字符串。这种事情可能有用:
let index = 0 // getting the _real_ number is the issue, perhaps
let title = soundNames[index]
let musicFile = Bundle.main.path(forResource: title, ofType: "mp3")
但实际上,这完全取决于soundNames
是如何构建的,你没有展示过。