3

我正在使用 NSUserScriptTask 运行用户放置在 Application Scripts 目录中的脚本。但是,我发现很难找出 NSUserScriptTask 接受哪些已知类型的脚本,并且文档也没有多大帮助......有什么想法吗?

到目前为止,我已经尝试过这些:

  • .sh
  • .applescript
  • .scpt
  • .scptd
  • 。文本

并且无法让它们中的任何一个工作(该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 的文档声称直接实例化该类将适用于任何有效文件并返回适当类型的任务:

返回的对象将属于特定子类之一(NSUserUnixTaskNSUserAppleScriptTaskNSUserAutomatorTask),或者nil如果文件似乎与任何已知类型都不匹配。

如果从子类调用,结果将是该类或nil.

实际上,我发现(从 10.8.2 开始)NSUserScriptTask 无条件返回nil和“这是什么我什至不知道”错误。看来您需要自己实例化正确的任务子类。可能值得提交一个错误

要测试文件是否可用作脚本任务(例如,在打开面板验证方法中),我所能建议的只是尝试实例化三个类中的每一个,YES如果其中任何一个成功并且NO全部失败,则返回。

于 2013-03-24T21:41:07.163 回答