0

伙计们

我是一名新的 iOS 开发人员,在新线程中调用肥皂函数时遇到问题。

这里有更多细节:

我有一个调用soap web服务的函数:

WebService *webService = [[[WebService alloc]init]retain];
[webService getUser:self action:@selector(getUserHandler) userName: usnm  encPassword: pswd];

这个函数是简单地从 sudzc.com(Great Website!Thanx!) 生成的,只需调用这个函数我就可以得到

<user><username>XXX</username><userStatus>XXX</userStatus><companyCode>XXX</companyCode><password>XXX</password></user>

从网络服务回来。我的 getUserHandler 将完美运行。

但如果我想在这样的线程中调用 web 服务:

[NSThread detachNewThreadSelector:@selector(myMethod) toTarget:self withObject:nil];

-(void)myMethod
{
    NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
    NSLog(@"!, %@,%@",usnm,pswd);
    WebService *webService = [[[WebService alloc]init]retain];
    [webService getUser:self action:@selector(getUserHandler) userName: usnm  encPassword: pswd];
    [pool drain];
}

我似乎没有得到returnxml,而且getUserHandler似乎永远不会启动(我在getUserHandler中放了一个NSLog,但这次不会打印)。

我不知道为什么会这样,

欢迎任何提示!

谢谢!

4

1 回答 1

0

我强烈建议您查看此处教程中描述的 Sync-Async 模式:

Sync-Async Pair Pattern – iOS 上的简单并发

还有一个问题集中在同一问题上:

多个异步 Web 服务请求 NSURLConnection iOS

高温高压

于 2011-08-09T20:22:44.747 回答