AppleScript可以使用编译时未知的标签创建记录吗?

时间:2012-01-15 20:38:47

标签: macos applescript

假设我的脚本包含一个值为"foo"的变量。如何在不事先知道值可能为{foo: 3}的情况下创建值为"foo"的记录?

3 个答案:

答案 0 :(得分:3)

我认为您的问题还有另一种方法(特别是如果您使用的是ASObjC),但您可以使用运行脚本来实现此目的,例如:

set myLabel to text returned of (display dialog "Enter record label (key):" default answer "foo")
set myRecord to run script "return {|" & myLabel & "|:3}"

myRecord --> {foo:3} (using the default answer)

编辑:如果使用了保留字词,我用管道包围标签(键)。

答案 1 :(得分:0)

另一种方法是使用Late Night Software的“List& Records Tools”免费osax,它提供获取和设置用户属性所需的功能。

http://www.latenightsw.com/freeware/list-record-tools/

将myRecord设置为myRecord& (将myRecord中的用户属性foo设置为3)

答案 2 :(得分:0)

我知道这是一个长期回答的问题,但它是我在研究这个问题并自己尝试时发现的第一个问题。我还想在运行时确定我设置的变量(不是键),我完成了这样的结果:

set scr to "on run argList
    return {|" & dictKey & "|: (item 1 of argList)}
    end run"

set newDict to (run script scr with parameters {dictVal})

其中dictKey是用作记录键的变量,dictVal是将其设置为的值。希望这有帮助!