学习使用AppleScript中的处理程序我遇到了一个问题。目前我已修剪我的应用程序以在运行时调用处理程序,但目前我收到错误:
error "Script Editor returned error -1708" number -1708
编译时我没有问题。当我尝试研究解决方案时,我无法找到在应用程序查找器下无法工作的原因。记住,我记得on run
必须在应用程序中最后声明。
代码:
on checkForRebels(tieFighter, starDestroyer)
display dialog "dark enough" as text
end checkForRebels
on run
tell application "Finder"
set the starDestroyer to (choose folder with prompt "Please select the Destroyer")
set tieFighter to items of starDestroyer
checkForRebels(tieFighter, starDestroyer)
end tell
end run
我尝试搜索
传递给处理程序时,applescript项会抛出错误
但是我回复了Apple的Working with Errors,但我没有回答我的问题。当我查看Apple的文档About Handlers时,我没有看到任何有关该问题应该是什么的内容。
当我将脚本修改为:
on checkForRebels(tieFighter, starDestroyer)
display dialog "dark enough" as text
end checkForRebels
on run
tell application "Finder"
set the starDestroyer to (choose folder with prompt "Please select the Destroyer")
set tieFighter to items of starDestroyer
end tell
checkForRebels(tieFighter, starDestroyer)
end run
它没有任何问题,但为什么处理程序checkForRebels()
在应用程序Finder的告诉块中不起作用?当我调用一个处理程序时,我是否必须总是在应用程序之外执行它才能工作?
答案 0 :(得分:2)
当您在tell块或其他处理程序中调用处理程序时,您需要指定“my”,否则它将在Finder dicitonary中查找该命令。
my checkForRebels(tieFighter, starDestroyer)
来自Applescript语言指南Calling Handlers in a tell Statement:
要从tell语句中调用处理程序,必须使用 我或我的保留字表示处理程序是其中的一部分 脚本而不是应该发送到tell目标的命令 言。