1

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

我可以得到这样的记录:

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

我也可以像这样成功地测试它:

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

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

get allElements whose owner = target
    --> {}

我也不能missing value在测试中使用:

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

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

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

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

4

1 回答 1

2

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

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

甚至selectionFinder 的属性也不能被 who 子句过滤。

于 2016-04-28T21:23:21.523 回答