2015-09-02 1 views
-1

J'ai trouvé un bogue sur mon application, mais seulement lorsque l'application fonctionne sur un appareil, si l'application fonctionne avec le simulateur, aucune erreur n'est générée.swift - bgMusic - erreur fatale: trouvé de manière inattendue nil lors du déballage d'une valeur optionnelle

J'ai localisé l'erreur dans le script de musique de fond, l'erreur de sortie est fatal error: unexpectedly found nil while unwrapping an Optional value. J'ai examiné des questions similaires ici, mais je n'ai trouvé aucun remède.

Quelqu'un peut-il aider à résoudre mon code?

var bgMusicURL:NSURL = NSBundle.mainBundle().URLForResource("bgMusic", withExtension: "aif")! 
    backgroundMusicPlayer = AVAudioPlayer(contentsOfURL: bgMusicURL, error: nil) //error here!!! 
    backgroundMusicPlayer.numberOfLoops = -1 
    backgroundMusicPlayer.prepareToPlay() 
    backgroundMusicPlayer.play() 

S'il vous plaît laissez-moi savoir si vous avez besoin de plus de code.

Merci.

+0

'erreur: texte fort nil' n'est pas Swift. Cela ne peut pas être votre vrai code. Montrez votre vrai code. – matt

+0

Excuses, c'était une faute de frappe. édité pour corriger le code. –

+0

Expliquez exactement comment _bgMusic.aif_ est supposé entrer dans l'ensemble de l'application. – matt

Répondre

1

Votre fichier bgMusic.aif est-il ajouté à votre cible?

Sinon, il peut jouer correctement sur le simulateur, mais pas sur l'appareil

1

Vérifier que ce qui suit est non nul sur l'appareil:

NSBundle.mainBundle().URLForResource("bgMusic", withExtension: "aif") 

force déballant init failable de NSURL demande un accident. Vous devez lier la valeur avec:

if let bgMusicURL = NSBundle.mainBundle().URLForResource("bgMusic", withExtension: "aif") { 
    backgroundMusicPlayer = AVAudioPlayer(contentsOfURL: bgMusicURL, error: nil) 
    backgroundMusicPlayer.numberOfLoops = -1 
    backgroundMusicPlayer.prepareToPlay() 
    backgroundMusicPlayer.play() 
} 
+0

Mais vous n'expliquez pas pourquoi ce serait nul sur l'appareil et non sur le simulateur. – matt