我已经查看了Stackoverflow但我无法得到答案.我想创建停止在另一个ViewController中播放声音的函数.但是当我点击停止按钮时,它会破解并显示"EXC_BAD_INSTRUCTION(代码= EXC_I386_INVOP,子代码= 0x0)".这是我的代码.
第一个ViewController
import UIKit
import AVFoundation
class FirstVC: UIViewController {
var metronome: AVAudioPlayer!
override func viewDidLoad() {
super.viewDidLoad()
do {
let resourcePath1 = Bundle.main.path(forResource: "music", ofType: "mp3")
let url = NSURL(fileURLWithPath: resourcePath1!)
try metronome = AVAudioPlayer(contentsOf: url as URL)
metronome.prepareToPlay()
metronome.play()
} catch let err as NSError {
print(err.debugDescription)
}
}
Run Code Online (Sandbox Code Playgroud)
另一个Viewcontroller是
import UIKit
class SecondVC: UIViewController {
var metronomePlay = FirstVC()
@IBAction func stopBtnPressed(_ sender: Any) {
metronomePlay.metronome.stop() //"EXC_BAD_INSTRUCTION (code=EXC_I386_INVOP, subcode=0x0)"
}
}
Run Code Online (Sandbox Code Playgroud) 我正在尝试将语法“componentsSeparatedByCharactersInSet”更改为 swift 3。但我不起作用。它如何适应swift 3?这是我在 ios 9 中的代码。它显示“类型‘字符串’的值没有‘componentsSeparatedByCharactersInSet’的成员。
var delimiter = NSCharacterSet(charactersIn: ",")
func parseHeaders(fromLines lines: [String]) -> [String] {
return lines.componentsSeparatedByCharactersInSet(self.delimiter)
}
Run Code Online (Sandbox Code Playgroud)