MIDIClientCreate不适用于Swift中的32位处理器

MIDIClientCreate不适用于Swift中的32位处理器,swift,coremidi,Swift,Coremidi,当方案是64位处理器(iPhone 5及更高版本)时,我可以通过MIDIClientCreate创建一个midiclient。它不适用于32位处理器,例如iPhone 4s #if !arch(arm64) || !arch(x86_64) var status = OSStatus(noErr) var s:CFString = "MyClient" var client : Unmanaged<MIDIClient>? status = M

当方案是64位处理器(iPhone 5及更高版本)时,我可以通过MIDIClientCreate创建一个midiclient。它不适用于32位处理器,例如iPhone 4s

    #if !arch(arm64) || !arch(x86_64)
    var status = OSStatus(noErr)
    var s:CFString = "MyClient"
    var client : Unmanaged<MIDIClient>?
    status = MIDIClientCreate(s,
            MIDINotifyProc( COpaquePointer( [ MyMIDINotifyProc ] ) ),
            nil,
            &client)
    if status == OSStatus(noErr) {
       if let c = client {
            var val = c.takeRetainedValue()

不知道这是否有帮助,但MIDI也存在类似的32/64位问题:。感谢您的回复,Martin。奇怪的是,在这里起作用的东西在这种情况下不起作用。midclientcreate()调用不会创建客户端,也不会将状态设置为error.FWIW,在当前的Swift 1.2测试版中,这种胡说八道的行为已经消失了。现在可以创建MIDI客户端。但是仍然存在回调问题。感谢您的更新据我所知,仍然没有办法从Swift代码调用C回调函数。
 var client = MIDIClientRef()
 status = MIDIClientCreate(s,
    MIDINotifyProc( COpaquePointer( [ MyMIDINotifyProc ] ) ),
    nil,
    &client)