2017-04-25 9 views
0

는 애플 스크립트에 다음과 같은 기록을 감안할 때 :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 

(10) 오류가 발생합니다 :

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