Сбой перед запуском приложения

override func viewWillLayoutSubviews() {
    let bgMusicURL:NSURL = NSBundle.mainBundle().URLForResource("bgmusic", withExtension: "mp3")!
    backgroundMusicPlayer = try! AVAudioPlayer(contentsOfURL: bgMusicURL)
    backgroundMusicPlayer.numberOfLoops = -1
    backgroundMusicPlayer.prepareToPlay()
    backgroundMusicPlayer.play()

    // Configure the view
    let skView:SKView = self.view as! SKView
    //skView.showsFPS = true
    //skView.showsNodeCount = true

    // Create and Configure the sciene
    let scene:SKScene = GameScene(size: skView.bounds.size)
    scene.scaleMode = SKSceneScaleMode.AspectFill
    skView.presentScene(scene)

я собираюсь

EXC_BAD_INSTRUCTION (код = EXC_I386_INVOP, субкод = 0x0)

и приложение вылетает еще до того, как оно запустится. Новое в программировании, кстати.

Благодарю вас


person Domo    schedule 18.11.2015    source источник


Ответы (1)


Причина, по которой это происходит, заключается в том, что ваш код вообще небезопасен! В первой строке вы принудительно разворачиваете URL-адрес, который может или не может быть сформирован системой, а затем в следующей строке вы принудительно пытаетесь без каких-либо ошибок. Однако я подозреваю, что ошибка в вашей первой строке. Система не может найти музыкальный файл, который вы пытаетесь загрузить, но вы принудительно распаковываете его, что приводит к сбою.

person pbush25    schedule 19.11.2015