Опитвам се да възпроизведа аудио в swift 2, но получавам грешка:
Thread 1: EXC_BAD_INSTRUCTION(code=EXC_I386_INVOP, subcode = 0x0)
нещо се променя от swift 1 на 2, така че сложих фразата do catch, но сега не работи Код:
import UIKit
import AVFoundation
class ViewController: UIViewController {
@IBOutlet weak var PausePlay: UIButton!
--> var ButtonAudioURl = NSURL(fileURLWithPath: NSBundle.mainBundle().pathForResource("Tutava", ofType: "aif")!)
var ButtonAudioPlayer = AVAudioPlayer()
override func viewDidLoad() {
super.viewDidLoad()
do {
ButtonAudioPlayer = try AVAudioPlayer(contentsOfURL: ButtonAudioURl)
} catch _ {
}
}
@IBAction func PlayAudio(sender: AnyObject) {
ButtonAudioPlayer.play()
}
}
Кой може да ми помогне? Мерси
ButtonAudioURL
вътре вviewDidLoad
? - person trojanfoe   schedule 24.07.2015ButtonAudioPlayer
, както и тази, която вече се инициализира вviewDidLoad
. - person trojanfoe   schedule 24.07.2015viewDidLoad
, а не да премахнете променливата. - person trojanfoe   schedule 24.07.2015EXC_BAD_INSTRUCTION
е свързан с опции за разопаковане (и други, но ...). Нещо като тази фатална грешка: неочаквано намерена нула при разопаковане на незадължителна стойност в конзолата? Ако е така, тогава проблемът е в!
-NSBundle.mainBundle().pathForResource("Tutava", ofType: "aif")!
Сигурни ли сте, че е включено в целта? Поставетеprint(NSBundle.mainBundle().pathForResource("Tutava", ofType: "aif"))
във вашияviewDidLoad
и изпратете конзолния изход, когато вашият контролер за изглед се появи. - person zrzka   schedule 24.07.2015