我使用 WSMakeStubs(在开发工具中)生成用于访问 SOAP Web 服务的存根代码。我对对象的调用当前只是阻塞。当我尝试使用异步调用时,什么都没有发生,我确信这与我对运行循环的理解有关。我初始化一个对象并尝试将它安排在这样的运行循环中:
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);
}
对 [self getRef] 的调用返回一个已设置回调的调用对象。然后回调应该调用我的目标和选择器,但是在使用运行循环调用调度后它永远不会到达那个断点。需要在运行循环调度中进行哪些更改才能使其正常工作?
同步调用工作正常,所以我很确定这不是服务器问题。