【发布时间】:2017-10-18 04:09:13
【问题描述】:
在做一个项目时,我决定添加一些音乐以在触发某个动作时播放。这是我得到的:
var player : AVAudioPlayer?
几行之后...
func playSound(){
let alertSound = URL(fileURLWithPath: Bundle.main.path(forResource: "Kalimba", ofType: "wav")!)
print(alertSound)
try! AVAudioSession.sharedInstance().setCategory(AVAudioSessionCategoryPlayback)
try! AVAudioSession.sharedInstance().setActive(true)
try! player = AVAudioPlayer(contentsOf: alertSound)
player!.prepareToPlay()
player!.play()
}
每当我尝试这个时,触发操作时 xcode 都会向我抛出一个致命错误,说:
线程 1:致命错误:在展开可选值时意外发现 nil
【问题讨论】:
-
你让你的播放器成为一个可选值。然后强制使用播放器?
-
你不应该在 Swift 中使用
!,除非你可以绝对 100% 保证它在运行时永远不会为 nil。因此,请改用?,或者告诉我们,当您绝对有信心期待其他内容时,哪一行给出了nil值。
标签: swift