Swift3 我有一个错误:“;致命错误:在展开可选值“时意外发现nil”;在Xcode 8 swift 3中
这是我的密码Swift3 我有一个错误:“;致命错误:在展开可选值“时意外发现nil”;在Xcode 8 swift 3中,swift3,xcode8,Swift3,Xcode8,这是我的密码 // // ViewController.swift // morpher app soundboard // // Created by Jared Evan Miller on 7/24/17. // Copyright © 2017 Jared Evan Miller. All rights reserved. // import UIKit import AVFoundation class ViewController: UIViewController {
//
// ViewController.swift
// morpher app soundboard
//
// Created by Jared Evan Miller on 7/24/17.
// Copyright © 2017 Jared Evan Miller. All rights reserved.
//
import UIKit
import AVFoundation
class ViewController: UIViewController {
let soundFilenames = ["5","8","7","4","6","Sound3forbutton3","sound2forbutton1","sound2forbutton2"]
var audioPlayers = [AVAudioPlayer]()
var lastAudioPlayer = 0
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
// Set up audio players
for sound in soundFilenames {
do {
// Try to do something
let url = URL(fileURLWithPath: Bundle.main.path(forResource: sound, ofType: "wav")!)
let audioPlayer = try AVAudioPlayer (contentsOf:url)
audioPlayers.append(audioPlayer)
}
catch {
// Catch the error that is thrown
audioPlayers.append(AVAudioPlayer())
}
}
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
@IBAction func buttonTapped(_ sender: UIButton) {
// Get the audioPlayer that corresponds to the button that they tapped
let lastPlayer = audioPlayers[lastAudioPlayer]
lastPlayer.stop();
lastAudioPlayer = sender.tag;
lastPlayer.currentTime = 0;
let audioPlayer = audioPlayers[sender.tag]
audioPlayer.currentTime=0;
audioPlayer.play()
}
@IBAction func tbuttonTapped(_ sender: UIButton) {
// Get the audioPlayer that corresponds to the button that they tapped
let lastPlayer = audioPlayers[lastAudioPlayer]
lastPlayer.stop();
lastAudioPlayer = sender.tag;
lastPlayer.currentTime = 0;
let audioPlayer = audioPlayers[sender.tag]
audioPlayer.currentTime=0;
audioPlayer.play()
}
}
我该如何解决这个问题
还有,我得到了这个错误。这是代码中的一部分。看看我改变了什么。当我在iPhone se上运行它时,它会出现错误
!![我的密码][2]
请帮忙 您正在强制展开Budle.main.path…的结果,因为此操作失败,这意味着您的资源未正确加载 确保您的声音文件与应用程序捆绑在一起。您可以通过转到项目设置来检查这一点,然后在“构建阶段”下,将文件添加到“复制捆绑资源”部分(如果它们还不存在)
for sound in soundFilenames {
guard let urlString = Bundle.main.path(forResource: sound, ofType: "wav") else {
print("Sound file not found: \(sound)")
continue
}
let url = URL(fileURLWithPath:urlString)
do {
// Try to do something
let audioPlayer = try AVAudioPlayer (contentsOf:url)
audioPlayers.append(audioPlayer)
}
catch {
// Catch the error that is thrown
audioPlayers.append(AVAudioPlayer())
}
}