AppleScript:使用带有记录值的“which”不起作用

时间:2016-04-28 18:31:41

标签: macos cocoa applescript cocoa-scripting

在我的可编写脚本的应用程序中,其中一个属性是命名记录类型,并且该记录类型也已在sdef中声明(命名为“自定义记录”)。

我可以得到这样的记录:

get owner of anElement
    --> {pool:"test", position:2}

我也可以成功地测试它:

set target to {pool:"test", position:2}
if owner of anElement = target then
    -- found!

但我不能在其子句中使用它:

get allElements whose owner = target
    --> {}

我也无法在测试中使用missing value

get allElements whose owner = missing value
    --> error number -1700 from missing value to custom record

是AppleScript的预期行为,即它是否无法处理其子句中的记录?

或者我做错了什么?到目前为止,我还没有实施任何强制处理程序或特殊记录处理程序,因为没有任何东西表明我需要它们。

另外,请参阅我的相关问题:Cocoa Scripting: Returning "null" vs. "missing value"

1 个答案:

答案 0 :(得分:2)

简短回答:这是预期的行为。

其子句仅适用于element引用类型(具有对象说明符的类),但不适用于记录类型和自定义列表。

即使Finder的selection属性也无法通过其子句进行过滤。