swift - 可能是指针错误 Midi sysEx

标签 swift runtime-error coremidi

当我使用以下代码运行应用程序时,有时会出现错误代码:

let letstryOtherThing: @convention(c) (UnsafeMutablePointer<MIDISysexSendRequest>) -> Swift.Void =
{ plop in
    print("here")
}

let rawPointer = UnsafeRawPointer([0xF0, 0x20, 0x21, 0x22, 0x23, 0xF7])
let pointer = rawPointer.assumingMemoryBound(to: UInt8.self)

let bytesToSend: UInt32 = 60
let complete: DarwinBoolean = false
let completionProc: MIDICompletionProc? = letstryOtherThing
let completionRefCon: UnsafeMutableRawPointer? = nil
let data: UnsafePointer<UInt8> = pointer
let destination: MIDIEndpointRef = dest!
let reserved: (UInt8, UInt8, UInt8) = (0, 0 ,0)

var midiRequest:MIDISysexSendRequest = MIDISysexSendRequest(destination: destination, data: data, bytesToSend: bytesToSend, complete: complete, reserved: reserved, completionProc: completionProc!, completionRefCon: completionRefCon)

DispatchQueue.main.async(execute: {
    MIDISendSysex(&midiRequest)
})

代码是:

EXC_BAD_ACCESS (code=1, address=0x800000020).

如果有人有想法,我会使用 CoreMidi 库。

最佳答案

我发现了问题。 这是因为这个变量是本地的,需要在全局中声明它。

var midiRequest:MIDISysexSendRequest = MIDISysexSendRequest(destination: destination, data: data, bytesToSend: bytesToSend, complete: complete, reserved: reserved, completionProc: completionProc!, completionRefCon: completionRefCon)

关于swift - 可能是指针错误 Midi sysEx,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47017150/

相关文章:

ios - 如何在 iOS 版 GCM 中正确调用刷新 token ?

ios - 简单的 MIDI 路由没有音频输出

swift - 相机 IOS8/Swift 与 Card.IO 有问题

swift - iOS 10 发布后,我可以使用 Xcode 7.3 提交 Swift 2.2 应用程序吗?

java - 在命令提示符下运行 java 代码时出现问题

java - 运行 afBedSheet 示例会产生 "Service does not exist for Type ' afIocConfig::FactoryDe​​faults'"错误

vba - 如果存在旧的未读邮件,请发送电子邮件

CoreMIDI refCon 传递给 MIDIReadProc

ios - 计算 iOS 的 CoreMIDI 弯音值?

ios - 有没有办法使用 GPUImage 库在晕影过滤器上应用像素化过滤器?