до Xcode 8 бета-5, я мог бы получить доступ к информации о событиях в MusicEventIterator, используя что-то вроде:MusicEventIteratorGetEventInfo в Xcode 8 бета 6
var type: MusicEventType = 0
var stamp: MusicTimeStamp = 0
var data: UnsafePointer<()>? = nil
var size: UInt32 = 0
while(hasCurrentEvent != false) {
MusicEventIteratorGetEventInfo(iterator!, &stamp, &type,
&data, &size)
// do stuff with stamp, type, data...
}
мне удалось получить некоторую помощь на Dev сайте компании Apple по работе с «данными», но получение данных в первую очередь также нарушено. Я получаю предупреждение об использовании «UnsafeRawPointer» в объявлении «данных» и ошибке о невозможности использования данных в качестве аргумента inout при вызове MusicEventIteratorGetEventInfo() ... Хотя я знаю, что они делают вещи более детерминированным и перспективным (т. е. для компилятора), невероятно сложно сменить материал C-interop каждые несколько месяцев. Мой MIDI файл кода парсер уже изменился в 3 раза ...
Для справки, MusicEventIteratorGetEventInfo имеет подпись:
func MusicEventIteratorGetEventInfo(_ inIterator: MusicEventIterator,
_ outTimeStamp: UnsafeMutablePointer<MusicTimeStamp>,
_ outEventType: UnsafeMutablePointer<MusicEventType>,
_ outEventData: UnsafeMutablePointer<UnsafePointer<Void>>,
_ outEventDataSize: UnsafeMutablePointer<UInt32>) -> OSStatus
Любая помощь с благодарностью.
дальше, глядя на https://github.com/apple/swift-evolution/blob/master/proposals/0107-unsaferawpointer.md, это даже не ясно для меня как «pointee» в UnsafeMutablePointer> должен быть представлен .... –
mrwheet