首页 > 解决方案 > 删除 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 实现的错误?

标签: macosmidiaudiokit

解决方案


推荐阅读