2011-07-03 4 views
0

私は、私は1つのクラスファイル名webservices.h内のすべての私のWebサービス呼び出しを入れたい...objective-cから呼び出すときは、Webメソッドごとに別のクラスファイルが必要ですか?

Objective-CでのWebサービスの結果を処理する方法について少し混乱しています

を.MすべてのWebメソッドはdataReceivedとXMLの解析に同じデリゲートを共有します。

1つのクラスにすべての結果が含まれている場合、その結果がどのコールに対応しているかをどのように知ることができますか?

答えて

1

あなたの質問を正しく理解しているなら、間違いなくこれを行うことができます。 NSURLConnectionなどの「Webサービス」のインスタンスを別々にして、デリゲートメソッドに渡された接続をインスタンスと比較してください。だから、一つのクラスで複数のNSURLConnectionsの使用例:webservices.hで

NSURLConnection *connection1; 
NSURLConnection *connection2; 
NSMutableData *receivedData1; 
NSMutableData *receivedData2; 

webservices.m中:

- (void) connection:(NSURLConnection *)connection didReceiveData:(NSData *)data { 
    if (connection == connection1) { 
    [receivedData1 appendData:data]; 
    } else if (connection == connection2) { 
    [receivedData2 appendData:data]; 
} 
+0

があることは、これを行うための最善の方法ですか?他の誰もこれをどのように実装していますか?私のwebservice.asmxに10のWebメソッドがある場合、webservice.mクラスに10の接続インスタンスが必要ですか?接続オブジェクトに、私が比較するために使用できるものはありますか? – Arcadian

+0

これは、私が知っている限り、これを単一のクラスファイルで非同期的に行う唯一の方法です(サービスを順番にロードした場合はNSURLConnectionオブジェクトを再利用できますが、それは遅くなります)。また、データを受け取るために別々のNSMutableDataインスタンスが必要です。そうしないと、複数のサービスリターンが同じデータオブジェクトに書き込まれる危険性があります。 – Keller

関連する問題