2017-04-25 8 views
0

は、AppleScriptの中で、次のレコードを考える:AppleScriptで自分のレコードを繰り返し処理できないのはなぜですか?

set usergroup to {user1:{name:"Darth Vader", role:"leader"}, user2:{name:"Yoda", role:"instructor"}} 

は、私ができる特定のユーザーに表示する:

set trainer to get user1 of usergroup 
display dialog (name of trainer) 

を私はすべてのユーザーを表示したい場合、私は試してみてください。

repeat with x from 1 to (length of usergroup) 
    set member to ("user" & x) as item 
    display dialog member 
end repeat 

user1user2がありますが、試してみると:

repeat with x from 1 to (length of usergroup) 
    set member to ("user" & x) as item 
    display dialog (get name of member) as text 
end repeat 

私が試したので、私はエラーを取得する:

repeat with x from 1 to (length of usergroup) 
    set member to (get name of ("user" & x)) as item 
    display dialog member as text 
end repeat 

なぜ私は、ユーザーのnameを取得することはできませんよ?

答えて

1

member変数のクラスは文字列であり、キーではないためです。あなたは、キー

などの文字列(「ユーザー」& X)を評価するために run scriptコマンドを使用することができ、 someRecord as list

set usergroup to {user1:{name:"Darth Vader", role:"leader"}, user2:{name:"Yoda", role:"instructor"}} 
repeat with member in (usergroup as list) -- the member variable contains a record 
    display dialog (name of member) 
    --display dialog (role of member) 
end repeat 

を使用するか:ユーザーの単純なリストが含まれているレコードの

set usergroup to {user1:{name:"Darth Vader", role:"leader"}, user2:{name:"Yoda", role:"instructor"}} 
repeat with x from 1 to (length of usergroup) 
    set member to ("user" & x) 
    set thisMemberName to run script "on run {thisRecord}" & linefeed & "name of " & member & " of thisRecord" & linefeed & "end run" with parameters {usergroup} 
    display dialog thisMemberName 
end repeat 
関連する問題