2017-04-25 8 views
0

den folgenden Datensatz in Apple Gegeben: Ich kannWarum kann ich meinen Datensatz in AppleScript nicht durchlaufen?

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

einen bestimmten Benutzer anzuzeigen:

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

aber wenn ich alle Benutzer angezeigt werden soll ich versuchen:

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

und Ich bekomme user1 und user2 aber wenn ich versuche:

Ich erhalte eine Fehlermeldung, so habe ich versucht:

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 

Warum bin ich nicht in der Lage name der Nutzer zu bekommen?

Antwort

1

Da die Klasse der member Variable eine Zeichenfolge ist, kein Schlüssel.

Für eine Platte, die eine einfache Liste der Benutzer enthält: Verwenden Sie 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 

Oder können Sie den run script Befehl verwenden, um eine Zeichenfolge („user“ & x) als ein Schlüssel

zu bewerten
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 
Verwandte Themen