좋아요, 그래서 응용 프로그램이있어서 스크립트로 만들려고합니다. plist를 설정하고 sdef 파일을 설정했습니다.Objective C에서 apple-scriptable 응용 프로그램을 만들고 기괴한 오류가 발생합니다.
지금까지 단 한 개의 사과 이벤트 명령이 있습니다. gotoPage. 그것은 정수를 취한다. 부울을 반환합니다.
@interface AEGoto :NSScriptCommand {
}
- (id)performDefaultImplementation;
- (id)performDefaultImplementation
{
int page = [[self directParameter] intValue];
Boolean retval = [gController setPage: page];
return retval? @"YES" : @"NO";
}
setPage : 내가 목표 - C 클래스 AEGoto.h이
<command name="gotoPage" code="dcvwgoto" description="Goto a specified page">
<cocoa class="AEGoto"/>
<direct-parameter description="Page Number" type="integer"/>
<result description="True if the page exists, False othrewise" type="boolean"/>
</command>
:
관련 XML은 (int)를 올바른지, 그리고 잘 작동합니다.
이렇게하면 내 프로그램이 제대로 작동하는 것 같습니다. 그런데 오류가 발생합니다 :
오류 "DocView에 오류가 있습니다. 4 gotoPage 메시지를 이해하지 못합니다." 4
에서 숫자 -1708가 나는 또한 내 DocView 출력에서 얻을 :
오류 스크립트 명령의 결과를 반환하는 동안 : 결과 개체를 ... 예 ... 애플 이벤트로 변환 할 수 없습니다 타입 'boolean'의 기술자. 이 'NSCFString'클래스의 인스턴스는 -scriptingBooleanDescriptor 메시지에 응답하지 않습니다. 난 그냥 직선 부울을 반환하는 경우
그러나, 내가 얻을 : 기능이 종료 될 때까지
싱글 스텝 - [NSScriptingAppleEventHandler handleCommandEvent : withReplyEvent :] 더 줄 번호 정보가 없습니다 . 프로그램 수신 신호 : "EXC_BAD_ACCESS".
2 가지 질문이있는 것 같습니다. 1) 왜 페이지에 가기 위해 3을 말하고 싶다고 생각합니까? 2) applescript에서 부울을 반환하는 올바른 방법은 무엇입니까?
감사합니다.
그래서, 나는 단지 그 다음 ... 덕분에 하나 개의 질문을했다 같아요. –
(오, 내 서둘러서 질문의 맨 아래로 건너 뛰었습니다.) – Wevah