AudioKit v5 — основной сбой при удалении MIDI-прослушивателя

#macos #midi #audiokit

#macos #midi #audiokit

Вопрос:

Я создаю приложение, которое прослушивает входящие MIDI с помощью AudioKit v5.

У меня есть общий экземпляр AudioKit MIDI в моем AppDelegate, и у меня есть класс, который соответствует MIDIListener.

Приложение представляет собой приложение на основе документов, и когда пользователь закрывает документ, чтобы освободить все ссылки на экземпляры моего класса MIDIListener, мне нужно удалить каждый экземпляр из массива слушателей моего общего экземпляра AudioKit MIDI. Однако всякий раз, когда я вызываю appDelegate.midi.removeListener(self) из своего экземпляра класса MIDIListener, я испытываю сбой в следующей строке протокола MIDIListener:

 func == (lhs: MIDIListener, rhs: MIDIListener) -> Bool {
    return lhs.isEqualTo(rhs)
}
 

Вызов appDelegate.midi.clearListeners() не вызывает сбоя, но для меня не подходит, поскольку у пользователя могут быть другие открытые документы с экземплярами MIDIListener, которые не хотят удаляться из общего массива прослушивателей экземпляров.

Я делаю что-то не так, или это может быть ошибка с реализацией AudioKit MIDI?