从iOS 11的第3版开始,我的应用程序在初始化用于AirPlay的MPVolumeView时开始崩溃.以下代码在早期版本的iOS和iOS 11 beta 1和2上运行得非常好.
func setupAirplayButton() {
let rect = CGRect(x: -1000, y: -1000, width: 10, height: 10)
volumeView = MPVolumeView(frame: rect) //app crashes here
volumeView.showsVolumeSlider = false
volumeView.setRouteButtonImage(nil, for: .normal)
volumeView.translatesAutoresizingMaskIntoConstraints = false
volumeView.isHidden = true
if let airplayButton = volumeView.subviews.filter({$0 is UIButton }).first as? UIButton {
self.airplayButton = airplayButton
self.airplayButton?.addObserver(self, forKeyPath: "alpha", options: [.initial, .new], context: nil)
}
NotificationCenter.default.addObserver(self, selector: #selector(wirelessRouteActiveChanged), name: NSNotification.Name.MPVolumeViewWirelessRouteActiveDidChange, object: nil)
myView.addSubview(volumeView)
}
Run Code Online (Sandbox Code Playgroud)
还有其他人遇到过同样的问题吗?
编辑:
崩溃日志
Exception Type: EXC_CRASH (SIGTRAP)
Exception Codes: 0x0000000000000000, …Run Code Online (Sandbox Code Playgroud)