3

NSUserScriptTaskを使用して、ユーザーがApplicationScriptsディレクトリに配置したスクリプトを実行しています。ただし、NSUserScriptTaskが受け入れる既知のタイプのスクリプトを見つけるのは難しいと感じており、ドキュメントもあまり役に立ちません...何かアイデアはありますか?

これまで私はこれらを試しました:

  • .sh
  • .applescript
  • .scpt
  • .scptd
  • 。TXT

そして、それらのいずれも機能させません(initWithURL:error:メソッドはnilを返します)

編集: 私はエラーを含めるのを忘れました!愚かな私...ログに印刷されるものは次のとおりです。

Error Domain=NSCocoaErrorDomain Code=259 "The file “Untitled.applescript” couldn’t be opened because it isn’t in the correct format." UserInfo=0x100121f50 {NSURL=file://localhost/Users/path to file/Untitled.applescript, NSFilePath=/Users/path to file/Untitled.applescript}
4

1 に答える 1

1

NSUserScriptTaskのドキュメントには、そのクラスを直接インスタンス化すると、有効なファイルで機能し、適切な種類のタスクが返されると記載されています。

返されるオブジェクトは、特定のサブクラス(NSUserUnixTaskNSUserAppleScriptTask、およびNSUserAutomatorTask)のいずれnilかであるか、ファイルが既知のタイプのいずれにも一致しないように見える場合です。

サブクラスから呼び出された場合、結果はそのクラスまたはになりnilます。

実際には、(10.8.2の時点で)NSUserScriptTaskが無条件に返さnilれ、「これは何ですか」というエラーが発生することがわかりました。正しいタスクサブクラスを自分でインスタンス化する必要があるようです。おそらくバグを報告する価値があります。

ファイルがスクリプトタスクとして使用できるかどうかをテストするために(たとえば、オープンパネル検証メソッドで)、3つのクラスのそれぞれをインスタンス化して、YESいずれかが成功したNO場合とすべてが失敗した場合に返すことをお勧めします。

于 2013-03-24T21:41:07.163 に答える