2
연락처 그룹을 조작하기 위해 Automator 용 AppleScript 응용 프로그램을 작성하려고합니다. 스크립트에 대한 입력으로 연락처 항목을 수신하고 있지만 구문 분석 방법에 대해 고민하고 있습니다. 나는 로그에 다음과 같은 얻을AppleScriptObjC에서 NSAppleEventDescriptor 구문 분석
script Labels_for_contact_groups
property parent : class "AMBundleAction"
on runWithInput_fromAction_error_(input, anAction, errorRef)
-- Get parameters
set labelName to valueForKey_("trainingLabelName") of parameters() of me
set labelValue to valueForKey_("trainingLabelValue") of parameters() of me
-- Iterate over the contact groups
-- what should I do here?
log input
return input
end runWithInput_fromAction_error_
end script
:
2016-10-12 11:35:28.061 Automator[2167:174553] <NSAppleEventDescriptor: [ 'obj '{ 'want':'azf5', 'form':'ID ', 'seld':'utxt'("50E8C441-3DF0-4CD7-8E36-E175B37D2CCB:ABGroup"), 'from':[0x0,10d10d "Contacts"] } ]>
내가해야 할 것은 지정된 그룹의 모든 연락처 정보를 추출입니다 여기에 지금까지 작성한 소스입니다. 어떻게해야합니까?
편집 :
[Labels_for_contact_groups runWithInput:fromAction:error:]: Can’t get every «class azf4» of «class ocid» id «data optr0000000080A9220080600000». (error -1728)
내가 잘못 뭐하는 거지 : 내가 다음 줄 이제 다음과 같은 오류가
tell application "Contacts" to set thePeople to people of input
repeat with i from 1 to number of items in thePeople
set thisPersonCurrent to item i of thePeople
log thisPersonCurrent
end repeat
을 추가?
제 생각에는 소프트웨어는 응용 프로그램이나 자동화 도구입니다. 둘 다있을 수는 없습니다. – Willeke
'input'은 Automator 동작의 입력이며 그룹 ID "50E8C441-3DF0-4CD7-8E36-E175B37D2CCB : ABGroup"처럼 보입니다. 당신은 그룹 인 것처럼 말할 수 있습니다. – Willeke
이것이 Apple 이벤트 디스크립터에 포함 된 객체 지정자 (일명 '참조')의 모습입니다. 'input as anything '을 사용하여 AppleScript 값으로 되돌려 보았습니까? 내가 모르는 유일한 경우는 참조가 올바른 응용 프로그램 (예 : 현재 응용 프로그램이 아니라 연락처)을 사용하는지 여부뿐입니다.하지만 시도하고보아야합니다. 솔직히 Automator 시스템과 해킹 된 AppleScript 훅 (hookeds)은 아주 멋지다.하지만 독립형 AS 애플릿이나'#!/usr/bin/osascript' 쉘을 쓰는 대신에 그것을 사용하고 싶다고 생각한다. 스크립트.) – foo