我对这个问题感到非常难过。我有一些标准函数,我保存在已编译的AppleScript文件中,我们称之为functions.scpt
。在另一个脚本中,我使用load script
将脚本对象加载到functions.scpt
:
set funcs to load script "path/to/functions.scpt
我在functions.scpt
中有一个名为icon()
的处理程序。无论出于何种原因,如果我尝试在我的其他脚本中多次调用此函数,我会收到错误。这是一些快速示例代码:
--called once
funcs's icon()
--called twice
funcs' icon()
每当我这样做时,都会收到以下错误:error "«script» doesn’t understand the “icon” message." number -1708 from «script» to «class icon»
。
为什么我不能从加载的脚本对象中调用两次相同的函数?我怎样才能解决这个问题?我需要多次调用它。
答案 0 :(得分:0)
感谢@ CRGreen和@ jweaks。我实际上刚刚在这个帖子上找到答案:https://stackoverflow.com/a/13256042/2884386
我在处理程序中设置了一个变量icon
,它覆盖了处理程序。因此,当其他脚本第二次尝试访问它时,它不是指向处理程序,而是指向变量。我重写了内部变量,并修复了它。
所以,这是(例如)正确的:
on icon()
set _icon to "path/to/icon.png"
return POSIX file _icon
end icon
虽然这是不正确的:
on icon()
set icon to "path/to/icon.png
return POSIX file icon
end icon