EXEC_BAD_INSTRUCTION (код =1, адрес =0xe) с MusicSequenceBarBeatTimeToBeats в Swift 2

У меня проблема при использовании API Apple MusicSequence C в Swift 2. Я не могу понять, как избавиться от EXEC_BAD_INSTRUCTION при вызове MusicSequenceBarBeatTimeToBeats,

Я пробовал много разных решений, найденных в интернете, но, похоже, ничего не работает.

Моя первая попытка, которая не привела к ошибке компиляции, была:

import Cocoa
import AudioToolbox

var musicSequence = MusicSequence()

NewMusicSequence(&musicSequence)

var barBeatTime = CABarBeatTime(bar: 1, beat: 1, subbeat: 0, subbeatDivisor: 960, reserved: 0)
var musicTimeStamp: MusicTimeStamp = 0

MusicSequenceBarBeatTimeToBeats(musicSequence, &barBeatTime, &musicTimeStamp)

Результат: EXEC_BAD_INSTRUCTION (код =1, адрес =0xe) в строке кода MusicSequenceBarBeatTimeToBeats

Затем я попытался с этим, но с тем же результатом:

var barBeatTime = CABarBeatTime(bar: 1, beat: 1, subbeat: 0, subbeatDivisor: 960, reserved: 0)
var musicTimeStamp = UnsafeMutablePointer<MusicTimeStamp>.alloc(sizeof(MusicTimeStamp))

MusicSequenceBarBeatTimeToBeats(musicSequence, &barBeatTime, musicTimeStamp)

musicTimeStamp.dealloc(sizeof(MusicTimeStamp))

Я попробовал withUnsafeutablePointer функция, но с той же ошибкой во время выполнения:

var barBeatTime = CABarBeatTime(bar: 1, beat: 1, subbeat: 0, subbeatDivisor: 960, reserved: 0)
var musicTimeStamp: MusicTimeStamp = 0

withUnsafeMutablePointer(&musicTimeStamp,
{
    MusicSequenceBarBeatTimeToBeats(musicSequence, &barBeatTime, UnsafeMutablePointer($0))
})

Если я передаю nil в третьем параметре, он не падает, но это бесполезно, потому что вывод отсутствует. Так что, похоже, это UnsafeMutablePointer<MusicTimeStamp> выходной параметр, который является проблемой.

MusicSequenceBarBeatTimeToBeats(musicSequence, &caBarBeatTime, nil)

Какие-либо предложения?

0 ответов

Другие вопросы по тегам