Initialisierung der MIDIMetaEvent-Struktur

Ich habe Mühe, die MIDIMetaEvent-Struktur in MusicPlayer.h mit swift zu initialisieren. Die Header-Datei definiert die Struktur wie folgt:

struct MIDIMetaEvent {
  var metaEventType: UInt8
  var unused1: UInt8
  var unused2: UInt8
  var unused3: UInt8
  var dataLength: UInt32
  var data: (UInt8)
}

Was bis zu diesem 'Daten'-Mitglied ziemlich einfach zu sein scheint. Ist das eine 1-Element-Tupeldefinition? Ich kann leicht alle anderen Strukturelemente initialisieren, habe aber vergeblich versucht, 'data' auf etwas anderes als einen einzelnen Wert zu setzen. In meinem Code habe ich ein UInt8-Array namens myData verwendet und versucht, die Struktur folgendermaßen zu initialisieren:

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) )

Aber der Compiler ist damit nicht zufrieden und beschwert sich über "UnsafeBufferPointer no convertible to UInt8". Wenn ich einfach Daten auf einen einzelnen Wert setze, aber dataLength auf einen Wert größer als 1 setze, zeigt die resultierende MIDIEventData, dass der erste Wert in dem Ereignis das ist, was ich in 'data' gefolgt von Kauderwelschdatenbytes gemäß 'dataLength'-Bytes festgehalten habe . "Daten" werden also eindeutig als eine Art kontinuierlicher Speicher angesehen.

Wie setze ich dieses 'data'-Element auf UInt8-Elemente aus einem Array?

Antworten auf die Frage(4)

Ihre Antwort auf die Frage