2016-02-27 6 views
1

Я пытаюсь использовать Scripting Bridge для управления VLC. Однако я не могу получить доступ ко всем методам. Я создал файл с помощью:AppleScript VLC Scripting Bridge

sdef /Applications/VLC.app | sdp -fh --basename VLC 

я могу получить доступ к свойствам, таким как vlc.pathOfCurrentItem просто отлично. Даже эта нотация работает: [vlc pathOfCurrentItem];.

Однако все методы, похоже, сгруппированы в протокол VLCGenericMethods и отделены от интерфейса VLCApplication. [vlc stop] генерирует ошибку времени компиляции: No visible @interface for 'VLCApplication' declares the selector 'stop'.

Что я делаю неправильно? Мой код в буквальном смысле:

VLCApplication *vlc = (VLCApplication *)[self.application sbApplication]; 
[vlc stop]; 

ответ

1

Скриптовый мост неисправен, искалечен и очень подвержен конфликтам приложений. Возможно, вы захотите рассмотреть использование AppleScript - язык может быть дерьмом, но это единственный поддерживаемый вариант, который знает, как правильно говорить о событиях Apple. Мост AppleScript-ObjC берет большую часть боли из моста между двумя языками: here's a quick how-to.

+0

Это будет работать, но я бы предпочел использовать скриптовый мост. Если никто еще не ответит какое-то время, я отмечу это как принятое. – Coder256