无法两次调用加载的脚本对象处理程序。为什么?

时间:2014-08-24 23:49:54

标签: applescript

我对这个问题感到非常难过。我有一些标准函数,我保存在已编译的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»

为什么我不能从加载的脚本对象中调用两次相同的函数?我怎样才能解决这个问题?我需要多次调用它。

1 个答案:

答案 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