如何解决AudioKit MIDIListener强制我覆盖其协议
嗨,我是AudioKit的新手
我试图在操场上写一个简单的Midi听众 https://github.com/AudioKit/AudioKit/blob/v5-master/Playgrounds/Playback.playground/Pages/MIDI%20Input.xcplaygroundpage/Contents.swift
但是,当我创建“类MIDIReceiver:MIDIListener”时,我无法将其内部留空,xcode要求我覆盖函数。 “类型'MIDIReceiver'不符合协议'MIDIListener'”
屏幕截图在这里 https://i.stack.imgur.com/kUtBs.jpg
我真的需要覆盖它们吗?还是我要填写功能的那些参数?
谢谢
---新增10月21日---
我想我明白了...
现在这些方法是:
class MIDIReceiver: MIDIListener {
func receivedMIDINoteOn(noteNumber: MIDINoteNumber,velocity: MIDIVelocity,channel: MIDIChannel,portID: MIDIUniqueID?,offset: MIDITimeStamp) {
<#code#>
}
func receivedMIDINoteOff(noteNumber: MIDINoteNumber,offset: MIDITimeStamp) {
<#code#>
}
func receivedMIDIController(_ controller: MIDIByte,value: MIDIByte,offset: MIDITimeStamp) {
<#code#>
}
func receivedMIDIAftertouch(noteNumber: MIDINoteNumber,pressure: MIDIByte,offset: MIDITimeStamp) {
<#code#>
}
func receivedMIDIAftertouch(_ pressure: MIDIByte,offset: MIDITimeStamp) {
<#code#>
}
func receivedMIDIPitchWheel(_ pitchWheelValue: MIDIWord,offset: MIDITimeStamp) {
<#code#>
}
func receivedMIDIProgramChange(_ program: MIDIByte,offset: MIDITimeStamp) {
<#code#>
}
func receivedMIDISystemCommand(_ data: [MIDIByte],offset: MIDITimeStamp) {
<#code#>
}
func receivedMIDISetupChange() {
<#code#>
}
func receivedMIDIPropertyChange(propertyChangeInfo: MIDIObjectPropertyChangeNotification) {
<#code#>
}
func receivedMIDINotification(notification: MIDINotification) {
<#code#>
}
}
Xcode说“在范围中找不到类型“ MIDITimeStamp”,“ MIDIUniqID”和“ MIDINotification””
导入CoreMIDI之后,没有错误
谢谢
解决方法
只需单击红色圆圈,然后按“修复”,它将为您添加所有协议方法。然后,您可以将代码放入所需的代码中。所有协议方法都是必需的,因为当使它们成为可选的东西(或创建执行默认操作的协议扩展)时,结果是如果我们更新了协议,而开发人员却忽略了更新,它们将失去其Midi功能。现在,如果我们更改内容,则必须保持最新。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。