小编dis*_*sco的帖子

使用Swift CFunctionPointer将回调传递给CoreMIDI API

可能目前这实际上是不可能的,这是不幸的.我正在尝试调用CoreMIDI API来设置MIDI输入.这就是我在Swift中要做的事情:

var midiClient = MIDIClientRef()
var inputPort = MIDIEndpointRef()
var status: OSStatus

func readProc(packetList: UnsafePointer<MIDIPacketList>, readProcRefCon: UnsafeMutablePointer<Void>, srcConnRefCon: UnsafeMutablePointer<Void>) -> Void {
}

status = MIDIClientCreate("MIDI client", nil, nil, &midiClient);

status = MIDIDestinationCreate(midiClient, "MIDI input", readProc, nil, &inputPort);
Run Code Online (Sandbox Code Playgroud)

但我得到这个错误:'(UnsafePointer,UnsafeMutablePointer,UnsafeMutablePointer) - > Void'不能转换为'MIDIReadProc'

MIDIReadProc的typedef如下:

typealias MIDIReadProc = CFunctionPointer<((UnsafePointer<MIDIPacketList>, UnsafeMutablePointer<Void>, UnsafeMutablePointer<Void>) -> Void)>
Run Code Online (Sandbox Code Playgroud)

有没有办法让我的readProc方法的函数指针传递给MIDIDestinationCreate API?

cocoa objective-c coremidi swift

16
推荐指数
2
解决办法
6182
查看次数

标签 统计

cocoa ×1

coremidi ×1

objective-c ×1

swift ×1