私は新しいiOS開発者です。新しいスレッドで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];
}
私はgetUserHandlerでのNSLogを置く(私はreturnxmlを取得していないようだ、とgetUserHandlerが開始されませんようですこの時間は印刷されません)。
私は、任意のヒントは歓迎されている、
を全く分からなぜこれが起こっているを持っていません!
Thanx!
私は、非同期にしようとしていますが、それは良い方向ですか?私はそのようにsoap関数を呼び出すことについての例を見つけることができません – Luvina
なぜGrand Central Dispatchを使用しないのですか?そして、あなたは 'webService'を長持ちさせています...それは、あなたがすでに' release'する必要があることをあなたが気づかない限り、漏れるでしょう。 – GarlicFries
ありがとう@GarlicFries原因私は、自動解放プールが私の "WebService"を解放しないようにしています。 – Luvina