无法在管理器中设置 AVAudioPlayerDelegate class

Cannot setup AVAudioPlayerDelegate in a Manager class

我正在使用我在 AppDelegate.swift class 中初始化为全局变量的管理器 class 来管理在我的应用程序中播放音乐。这是我的经理的一些代码 class

import Foundation
import AVFoundation
import MediaPlayer

/*
protocol PlayerDelegate : class {
    func soundFinished(sender : AnyObject)
}*/
var quoteList = [Quote]()
var isRandomQuote = false

enum alarmTypes {
case song
case quote
case randomQuote
}
var myAVAudioPlayer:AVAudioPlayer = AVAudioPlayer()
var MPMediaPlayer = MPMusicPlayerController()

public class MediaManager: NSObject, AVAudioPlayerDelegate{

//weak var delegate : PlayerDelegate?

var MPMediaItem: MPMediaItemCollection!
var quoteSelected = Quote()

var alarmType = alarmTypes.randomQuote

func selectRandom(){
    self.alarmType = alarmTypes.randomQuote
    quoteSelected = pickRandomQuote()
}
func selectSong(MPMedia: MPMediaItemCollection){
    self.alarmType = alarmTypes.song
    MPMediaItem = MPMedia
}
func selectQuote(quote: Quote){
    self.alarmType = alarmTypes.quote
    quoteSelected = quote
}



var isPlaying:Bool = false

  override init(){
    super.init()
  myAVAudioManager.delegate = self 
}

然而,当我转到 运行 代码时,我收到此错误:线程 1:EXC_BAD_ACCESS(代码 = 1,地址 = 0x8)

我试过将其他文件设为委托,但也没有用。有没有办法让我的经理成为代表,以便它可以在播放完歌曲时响应播放器?

我认为当您设置委托时,myAVAudioManager 仍然是 nil。尝试创建新的 AVAudioPlayer 实例。