2015-05-28 6 views
1

По-прежнему существует проблема с определением обратных вызовов в CoreMIDI с помощью Swift, поэтому обходным путем является использование Objective-C. Я нашел этот ответ, но я не могу понять, как использовать MIDIReadProcCallback.setOnCallback({ (packetList: MIDIPacketList) in ... }) из этого ответа: https://stackoverflow.com/a/26139259/616873.Попытка найти временное решение обратного вызова Swift MIDI

Я не могу прокомментировать конкретный ответ для получения более подробных разъяснений, потому что мой представитель не 50, поэтому, если кто-нибудь может указать мне на какой-либо примерный код или дополнительные разъяснения, я бы очень благодарен.

+0

Ответ правильный, поэтому какая у вас проблема? Просто сделайте то, что ответ вам подскажет. – matt

ответ

2

Вот blog post и github repo с рабочим примером. В коде Swift используется objc как батут для указателей на функции.

+1

Большое спасибо, я действительно смотрел ваш блог в надежде на обходной путь! Хорошее решение для отсутствия следующей функции пакета (я бы дал вам репутацию, но я ниже минимума, чтобы сделать это.) – Jess

+0

И я думал, что только мой кот прочитал мой блог :) Я использовал один из моих вопросов поддержки разработчиков к Apple на этом. Они ответили, что да, обратные вызовы не работают в Свифт, так что держите батут. Вздох. Рад, что это тебе помогло. –