我是一个基于页面的应用程序,其中根视图控制器有一个按钮,用于暂停数据视图控制器中的AVAudioPlayer。 我理所当然地知道根和数据视图控制器如何工作。我看起来像this。
当我按下按钮时,我得到一个EXC_BAD_ACCESS。但是,当我从数据视图控制器上的按钮暂停时,它可以正常工作而不会发生崩溃。我试过了:
•在功能中添加暂停代码并调用功能
var dataView = self.storyboard?.instantiateViewControllerWithIdentifier("DataViewController") as! DataViewController
dataView.pause()
dataViewController
func pause() {
player.pause()
}
•在dataView中调用一个函数来调用暂停播放器的函数
•试图用
打电话dataViewController().player.pause()
•试图在player.prepareForPlay()
player.pause
所有这些都给了我同样的错误。是不是因为rootViewController没有权限在dataViewController中编辑player
?
答案 0 :(得分:1)
此代码:
dataViewController().player.pause()
创建DataViewController的新实例。那个新实例没有声音播放器。不要那样做。您需要一种方法来获取指向现有dataViewController实例的指针。
顺便说一下,你应该遵循命名类和类型的Swift命名约定,以大写字母开头。因此,班级名称应为DataViewController
。