我正在使用 NSUserScriptTask 运行用户放置在应用程序脚本目录中的脚本。但是,我发现很难找出 NSUserScriptTask 接受的已知脚本类型以及docs http://developer.apple.com/library/mac/#documentation/Foundation/Reference/NSUserUnixTask_Class/Reference/Reference.html#//apple_ref/occ/cl/NSUserUnixTask也没有多大帮助...有什么想法吗?
到目前为止我已经尝试过这些:
- .sh
- .applescript
- .scpt
- .scptd
- .txt
并且无法让他们中的任何一个工作(initWithURL:error:
方法返回 nil)
EDIT:我忘了包含错误!愚蠢的我......这是日志上打印的内容:
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}
NSUserScriptTask 的文档 http://developer.apple.com/library/mac/documentation/Foundation/Reference/NSUserScriptTask_Class/Reference/Reference.html#//apple_ref/occ/instm/NSUserScriptTask/initWithURL%3aerror%3a声称直接实例化该类将适用于任何有效文件并返回适当类型的任务:
返回的对象将属于特定子类之一(NSUserUnixTask http://developer.apple.com/library/mac/documentation/Foundation/Reference/NSUserUnixTask_Class/Reference/Reference.html#//apple_ref/occ/cl/NSUserUnixTask, NSUserAppleScriptTask http://developer.apple.com/library/mac/documentation/Foundation/Reference/NSUserAppleScriptTask_Class/Reference/Reference.html#//apple_ref/occ/cl/NSUserAppleScriptTask, and NSUserAutomatorTask http://developer.apple.com/library/mac/documentation/Foundation/Reference/NSUserAutomatorTask_Class/Reference/Reference.html#//apple_ref/occ/cl/NSUserAutomatorTask), or nil
如果该文件与任何已知类型都不匹配。
如果从子类调用,结果将是该类或nil
.
实际上,我发现(从 10.8.2 开始)NSUserScriptTask 无条件返回nil
和“这是什么我什至不”错误。看来你需要自己实例化正确的任务子类。大概值得提交错误 https://bugreport.apple.com/.
要测试文件是否可用作脚本任务(例如,在打开面板验证方法中),我所能建议的就是尝试实例化这三个类中的每一个,返回YES
如果其中任何一个成功并且NO
如果他们都失败了。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)