macos - 删除 MIDI 侦听器时 AudioKit v5-main 崩溃
问题描述
我正在构建一个使用 AudioKit v5 监听传入 MIDI 的应用程序。
我的 AppDelegate 中有一个 AudioKit MIDI 共享实例,并且我有一个符合 MIDIListener 的类。
该应用程序是一个基于文档的应用程序,当用户关闭文档时,为了释放对我的 MIDIListener 类实例的所有引用,我需要从我的 AudioKit MIDI 共享实例的侦听器数组中删除每个实例。但是,每当我appDelegate.midi.removeListener(self)
从 MIDIListener 类实例中调用时,我都会在 MIDIListener 协议的以下行中遇到崩溃:
func == (lhs: MIDIListener, rhs: MIDIListener) -> Bool {
return lhs.isEqualTo(rhs)
}
调用appDelegate.midi.clearListeners()
不会导致崩溃,但不适合我,因为用户可能有其他带有 MIDIListener 实例的打开文档,这些文档不想从共享实例 Listeners 数组中删除。
我做错了什么,或者这可能是 AudioKit MIDI 实现的错误?