guys線程中的iOS調用soap函數
我是一名新的iOS開發人員,在新線程中調用soap函數時遇到問題。
下面是詳細信息:
我有一個函數調用SOAP Web服務:
WebService *webService = [[[WebService alloc]init]retain];
[webService getUser:self action:@selector(getUserHandler) userName: usnm encPassword: pswd];
這個函數僅僅從sudzc.com產生的(!偉大的網站,謝謝) 簡單地調用這個函數我可以得到
<user><username>XXX</username><userStatus>XXX</userStatus><companyCode>XXX</companyCode><password>XXX</password></user>
返回從webservice。和我的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開始(我把的NSLog在getUserHandler ,但這次不會打印)。
我不知道爲什麼會這樣,
任何線索,歡迎!
Thanx!
我聽說試試異步,是不是一個好方向?原因我找不到有關以這種方式調用soap函數的任何示例 – Luvina
爲什麼不使用Grand Central Dispatch?而且,你過度保留了'webService' ......這將會泄漏,除非你已經意識到你需要'釋放'它兩次並且這樣做。 – GarlicFries
感謝@GarlicFries因爲我不會讓autorelease池釋放我的「webService」... – Luvina