【发布时间】:2017-12-11 17:44:30
【问题描述】:
我正在尝试在我的项目文件中播放声音,当点击一个按钮时。
Button 连接到一个 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'
我怎样才能做到这一点?如果需要,我可以提供更多代码。
提前致谢。
【问题讨论】:
-
该错误与问题无关。与声音、音频播放器、集合视图、单元格、视图控制器等无关。问题是纯粹的基本 Swift:
soundNames是一个数组,但你试图假装它是一个字典。就是这样。 -
试试这个
let musicFile = Bundle.main.path(forResource: sender.currentTitle, ofType: "mp3") -
"我的按钮已经根据我之前创建的数组命名了" 这就是那个数组。展示它是如何声明的以及你是如何创建它的。
-
@AshvinGudaliya 非常感谢!我太笨了,现在可以工作了
标签: swift xcode button uicollectionviewcell avaudioplayer