NSUserScriptTask:接受的文件类型?

时间:2013-03-24 19:40:37

标签: objective-c cocoa appstore-sandbox

我正在使用NSUserScriptTask来运行用户放置在Application Scripts目录中的脚本。但是,我发现很难找出NSUserScriptTask接受的已知类型的脚本,而docs也没有多大帮助...任何想法?

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

  • .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}

1 个答案:

答案 0 :(得分:1)

The documentation for NSUserScriptTask声称直接实例化该类将对任何有效文件起作用并返回相应类型的任务:

  

如果文件不显示,则返回的对象将属于某个特定子类(NSUserUnixTaskNSUserAppleScriptTaskNSUserAutomatorTask)或nil匹配任何已知类型。

     

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

实际上,我发现(截至10.8.2)NSUserScriptTask无条件地返回nil和“这是什么,我甚至没有”错误。您似乎需要自己实例化正确的任务子类。可能值得filing a bug

要测试文件是否可用作脚本任务(例如,在Open面板验证方法中),我建议的是尝试实例化三个类中的每一个,如果其中任何一个成功,则返回YES如果所有这些都失败,则NO