我是新来的迅速和我从Udemy的课程学习。斯威夫特:解包无导致我的程序崩溃
,我发现了错误
“主题1:EXC_BAD_INSTRUCTION(代码= EXC_I386_INVOP,子码=为0x0)”
和控制台解释为 “意外发现零而展开的可选值”。
我双重检查,以确保我的代码是完全相同作为我的教练的,甚至重新启动一次的情况下,我搞砸的东西了,但我仍然得到同样的错误。
我的代码如下:
import UIKit
import AVFoundation
class ViewController: UIViewController {
@IBOutlet weak var darkBlueBG: UIImageView!
@IBOutlet weak var powerButton: UIButton!
@IBOutlet weak var cloudHolder: UIView!
@IBOutlet weak var rocket: UIImageView!
@IBOutlet weak var hustleLbl: UILabel!
@IBOutlet weak var onLbl: UILabel!
var player: AVAudioPlayer!
override func viewDidLoad() {
super.viewDidLoad()
let path = Bundle.main.path(forResource: "hustle-on", ofType: "wav")! //This is the line that the console says is causing the error
let url = URL(fileURLWithPath: path)
do {
player = try AVAudioPlayer(contentsOf: url)
player.prepareToPlay()
} catch let error as NSError {
print(error.description)
}
}
@IBAction func powerButtonPressed(_ sender: Any) {
cloudHolder.isHidden = false
darkBlueBG.isHidden = true
powerButton.isHidden = true
player.play()
UIView.animate(withDuration: 2.3, animations: {
self.rocket.frame = CGRect(x: 0, y: 20, width: 375, height: 402)
}) { (finished) in
self.hustleLbl.isHidden = false
self.onLbl.isHidden = false
}
}
}
每次使用'!'斯威夫特,你说一次“我想如果有什么错我的代码在这里崩溃”。 –
@rmaddy我不确定这个愚蠢的标志是有帮助的。 OP的问题不是“我不明白什么解开nil的意思”,而是“我的代码和我的老师的代码是一样的,为什么我的老师没有时我的失败? –