2011-08-09 7 views
0

guysiOSスレッド内のsoap関数を呼び出す

私は新しい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!

+0

私は、非同期にしようとしていますが、それは良い方向ですか?私はそのようにsoap関数を呼び出すことについての例を見つけることができません – Luvina

+0

なぜGrand Central Dispatchを使用しないのですか?そして、あなたは 'webService'を長持ちさせています...それは、あなたがすでに' release'する必要があることをあなたが気づかない限り、漏れるでしょう。 – GarlicFries

+0

ありがとう@GarlicFries原因私は、自動解放プールが私の "WebService"を解放しないようにしています。 – Luvina

答えて

0

私は非常にここのチュートリアルで説明したように同期・非同期パターンに見てお勧めします。

Sync-Async Pair Pattern – Easy concurrency on iOS

同じ問題に焦点を当てた質問もあります:

Multiple async webservice requests NSURLConnection iOS

HTH

+0

Thanx Ill check that – Luvina

+0

Oh yeah!これら2つのリンクは私をThanxから助けました! – Luvina

+0

これを受け入れられた回答としてマークしてもよろしいですか?ありがとうございました –

関連する問題