2016-10-30 5 views
1

Ich habe den obigen Code in meinem schnellen Projekt. Mein Projekt stürzt das erste Mal, dass ich das Projekt im Simulator bei self.buttonTapPlayer.play() mit dem folgenden Fehler führen:Thread1: EXC_BAD_ACCESS (Code = 1, Adresse = 0X48) wenn Taste gedrückt wird

Thread1:EXC_BAD_ACCESS(code=1, address = 0X48)

Allerdings, wenn ich es wieder laufen, alles ist in Ordnung. Wie kann ich das beheben?

+0

i getestet nur Ihren Code .. Sie haben Problem segue Kennung einrichten ... – Joe

+0

@ Coder221 Is das Problem immer noch da, wenn Sie diese drei Zeilen nicht in 'ViewDidLoad'-Methode versenden? – alexburtnik

Antwort

1

Sie können es nicht tun. Sie haben Ihre buttonTapPlayer in einem Hintergrundthread erstellt und Sie versuchen, es vom Hauptthread (zu IBAction Methode) aufzurufen. Der Compiler ist auf play() abgestürzt, weil dein Player noch nicht bereit ist.

Um dies zu vermeiden, könnten Sie Ihre Spieler innen bauen:

DispatchQueue.main.async { 
    // build your stuff to the main thread 
} 

oder einfach entfernen DispatchQueue.global(qos: .background).async {}

+0

Schätzen Sie die Erklärung, ich baute es in DispatchQueue.main.async {}, es funktioniert gut. – Coder221

Verwandte Themen