AppleScriptObjC: невозможно создать объект AVMIDIPlayer

У меня возникли проблемы с небольшим количеством кода AppleScript ObjC. Проблемная строка, кажется, когда я инициализирую объект AVMIDIPlayer (3-я строка повтора). Возвращается с ошибкой -1 (AVAudioEngineManualRenderingStatusError). Следующая строка завершается неудачно, потому что у объекта Nil нет методов.

Вот соответствующие биты:

property NSURL : a reference to current application's NSURL
property AVMIDIPlayer : a reference to current application's AVMIDIPlayer
on open (filelist)
    repeat with each_item in filelist
        set myfile to quoted form of POSIX path of each_item as string
        set myMIDIFile to (NSURL's fileURLWithPath:myfile)
        set {myMIDIPlayer, theError} to (AVMIDIPlayer's alloc()'s initWithContentsOfURL:myMIDIFile soundBankURL:none |error|:(reference))
        myMIDIPlayer's prepareToPlay()
        myMIDIPlayer's play(myHandler)

1 ответ

Решение

Причиной проблемы является quoted form of,

Используйте это только в do shell script строки для экранирования строки, содержащей пробелы и специальные символы, больше нигде.

set myfile to POSIX path of each_item -- no coercion: POSIX path is string

И обрабатывать theError

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