2011-02-25 2 views
0

dev 도구에서 WSMakeStubs를 사용하여 SOAP 웹 서비스에 액세스하기위한 스텁 코드를 생성했습니다. 객체에 대한 호출은 현재 차단됩니다. 비동기 호출을 사용하려고하면 아무 일도 일어나지 않으며 실행 루프에 대한 내 이해와 관련이 있다고 확신합니다. 나는 객체를 초기화하고,이 같은 실행 루프에 일정을보십시오비동기 SOAP 웹 서비스가 작동하지 않는 이유

BeginPartnerSession *call = [[BeginPartnerSession alloc] init]; 
[call setParameters:kPartnerID in_Password:kPartnerPassword]; 
[call setCallBack:self selector:@selector(sessionIDRequestDidFinish:)]; 
[call scheduleOnRunLoop:[NSRunLoop currentRunLoop] mode:NSDefaultRunLoopMode]; 
[call release]; 

실행 루프에 일정에 대한 스텁 호출은 다음과 같습니다

- (void) scheduleOnRunLoop:(NSRunLoop*) runloop mode:(NSString*) mode 
{ 
    WSMethodInvocationScheduleWithRunLoop([self getRef], [runloop getCFRunLoop], (CFStringRef) mode); 
} 

호출에 [자기 getRef] 콜백을 설정 한 호출 객체를 반환합니다. 콜백은 내 타겟과 셀렉터를 호출 할 예정이지만 실행 루프로 schedule을 호출 한 후에는 결코 중단 점에 도달하지 않습니다. 올바르게 작동하려면 실행 루프 예약을 변경해야합니까?

동기 호출이 제대로 작동하므로 서버 문제가 아닌 것으로 확신합니다.

답변

0

나는 결국이 문제를 격리 할 수있는 별도의 프로젝트로 나갔다. 비동기 호출이 잘 작동하여 runloop이 나에게 용의자가되었다. iPhoto의 플러그인으로 실행하고 있다는 사실과 관련이 있습니다. runloop 모드를 변경하여 호출이 다음과 같이 보이도록했습니다.

[call scheduleOnRunLoop:[NSRunLoop currentRunLoop] mode:NSRunLoopCommonModes]; 

콜백이 호출되었습니다. 빌라!

관련 문제