2010-06-16 7 views
0

좋아요, 그래서 응용 프로그램이있어서 스크립트로 만들려고합니다. 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에서 부울을 반환하는 올바른 방법은 무엇입니까?

감사합니다.

답변

2

return [NSNumber numberWithBool:retval];

+0

그래서, 나는 단지 그 다음 ... 덕분에 하나 개의 질문을했다 같아요. –

+0

(오, 내 서둘러서 질문의 맨 아래로 건너 뛰었습니다.) – Wevah

관련 문제