Не связывайтесь с NSAppleScript
: это правильное пита для передачи данных в и как вы должны упаковать и распаковать каждый NSAppleEventDescriptor
самостоятельно. Самый простой способ вызова AS внутри приложения Cocoa - через AppleScript-ObjC bridge, который позволяет вашему ObjC-коду вызывать AS-обработчики как собственные методы (и наоборот) и выполняет преобразование значений AS-ObjC для вас.
Других варианты для отправки события Apple, прямо из ObjC/Swift:
рамка ScriptingBridge MacOS, которая парализована, дрянной и ужасно запутанная, но может быть достаточно тривиальные задачи (AS через АСКИ по-прежнему является самым безопасным и самый надежный выбор, хотя)
SwiftAutomation framework, что я разрабатываю с целью подачи его в Apple в новом году. Это новая база кода, и я все еще выбиваю ошибки, но дизайн сходит с приложений, который зарекомендовал себя как настоящая альтернатива AppleScript за десятилетие реального использования.
Кстати, если SwiftAutomation представляет интерес для вас, пожалуйста, запрос функции файла на bugreport.apple.com просит Apple, чтобы принять его и включить в 10.13. Чем больше дубликатов билетов они получают, тем больше вероятность того, что они обратят внимание.