var audioPlayer: AVAudioPlayer! @IBAction func playButtonPressed(_ sender: UIButton) { let sounds = ["x", "y", "z"].shuffled() guard let sound = sounds.shuffled(), let soundURL = Bundle.main.url(forResource: sound, withExtension: "mp3") else { return } do { audioPlayer = try AVAudioPlayer(contentsOf: soundURL) } catch { print(error) } audioPlayer.play()

问题描述 投票:0回答:2
我在混洗声音时遇到问题。当我得到警惕let sound = sounds.shuffled()时,我得到一个错误,条件绑定的初始化程序必须具有Optional类型,而不是'[String]'任何想法如何...
ios arrays swift avaudioplayer shuffle
2个回答
1
投票
或者,您也可以删除混洗并使用

guard let sound = ["x", "y", "z"].randomElement()

sounds.shuffled()不会返回可选值,因此linter会告诉您不要对其进行保护,因为它没有任何意义。在这里阅读:https://developer.apple.com/documentation/swift/array/2994757-shuffled


1
投票
guard let sound = sound.first, ... else { return }
© www.soinside.com 2019 - 2024. All rights reserved.