2017-05-26 4 views
1

JXAソースコードで文字列変数を使用している場合、swiftから実行する方法はありますか? NSAppleScriptはAppleScriptソースでのみ動作します。SwiftからJXAを実行するには?

答えて

-1

なぜですか? JXAはあらゆる点で犬です。 JSコードを実行したいだけなら、JavaScriptCore Obj-C APIははるかにクリーンで簡単です。 「AppleScriptable」アプリケーションを制御したい場合は、AppleScriptを使用してください。これは正式にサポートされている唯一のオプションです。

(†ありSwiftAutomationがあるが、Appleがかましていないと私は自分自身は、MacオートメーションのAppleの慢性不始末を与え、それをサポートするために傾いていないよ。私たちは、WWDC17で何が起こるかわかります。)

+0

私はすでに作らたくさんのJXAスクリプトがあるので、私はSwiftから実行できるようにしたいと考えています。スウィフトがそれをすることができないならば、私はスウィフトを通してオスカスクリプトでシェルを動かすだけだと思いますか? – jl303

+0

OSAKitがありますが、文書化されていないので、自分でそれを把握しなければなりません。または、スクリプトを '.scpt'形式で保存するだけです。これは' NSAppleScript'/'NSUserAppleScriptTask'が実行されます。 (ソースコードからコンパイルするたびにコード臭が発生し、スクリプトの 'run'ハンドラにパラメータとして渡すのではなく、コード文字列を使用してスクリプトをパラメータ化するナイーブで安全でないコードでよく見られます。)BTW、AppleScriptのもう一つの利点はAppleScriptObjCがそのまま[ObjC/Swift](http://appscript.sourceforge.net/asoc.html)からASハンドラをネイティブメソッドであるかのように呼び出す。大幅に苦痛を少なくします。 – has

関連する問題