Инициализация структуры MIDIMetaEvent
Я пытаюсь инициализировать структуру MIDIMetaEvent, найденную в MusicPlayer.h, с помощью swift. Заголовочный файл определяет структуру следующим образом:
struct MIDIMetaEvent {
var metaEventType: UInt8
var unused1: UInt8
var unused2: UInt8
var unused3: UInt8
var dataLength: UInt32
var data: (UInt8)
}
Что кажется довольно простым до тех пор, пока этот элемент данных. Это определение кортежа из 1 элемента? Я могу легко инициализировать все остальные элементы структуры, но тщетно пытался установить для «данных» что-либо еще, кроме одного значения. В моем коде я использовал массив UInt8 с именем myData и попытался инициировать структуру следующим образом:
var msg = MIDIMetaEvent(
metaEventType : UInt8(0x7F),
unused1 : UInt8(0),
unused2 : UInt8(0),
unused3 : UInt8(0),
dataLength : UInt32(myData.count),
data : UnsafeBufferPointer<UInt8>(start: UnsafePointer<UInt8>(myData), count:myData.count) )
Но компилятор недоволен этим и жалуется на «UnsafeBufferPointer no конвертируемый в UInt8». Если я просто установлю данные на одно значение, но установлю dataLength на значение больше 1, результирующие MIDIEventData показывают, что первое значение в событии - это то, что я вставил в «data», за которым следуют байтовые байты данных в соответствии с байтами «dataLength». , Ясно, что «данные» рассматриваются как некая непрерывная память.
Итак, как мне установить этот элемент «data» на элементы UInt8 из массива?