2

SOAP 呼び出しを行うアプリがあります。UI がブロックされないようにするために、各 SOAP 呼び出しを NSOperation のサブクラスに入れています。これはうまく機能しますが、さまざまな種類の SOAP 呼び出しが大量にあります。したがって、それぞれ 10 個のポートまたはオペレーションを持つ 3 つの WSDL を使用すると、SOAP で 30 個の異なる呼び出しが発生し、それらのそれぞれを NSOperation を使用してスレッドに入れると、30 個の NSOperation サブクラスになります。

これは悪いことではないかもしれませんが、再利用可能なライブラリを作成しようとしているので、呼び出しをカプセル化する WSDL ごとに 1 つのオブジェクトがあります。WSDL2ObjC を使用しており、これによりすべてのロジックがカプセル化されるため、これは便利です。しかし、これらの多くの NSOperations で呼び出しをラップする素敵な API があるのは奇妙に思えます。また、呼び出し元が適切と思われる方法で使用できるように、API 自体でスレッド化を行っています。

どんな提案も素晴らしいでしょう。

4

1 に答える 1

2

私が正しく理解していれば、SOAP サービスへの呼び出しをカプセル化するオブジェクトが既にあり、NSOperation サブクラスを削減したいだけです。

NSInvocationOperation にチェックインしましたか? これは、メッセージを NSOperation 呼び出しとしてオブジェクトに送信できるようにする NSOperation のサブクラスです。したがって、非ブロッキング操作は引き続き取得できますが、NSOperation の複数のサブクラスは必要ありません。

于 2009-08-19T14:51:34.323 に答える