0

'A' と 'B' の 2 つのアプリケーションがあり、ipc を実行する必要があります。プロセス 'A' は、プロセス 'B' がまだ実行されていない場合、プロセス 'B' を起動します。プロセス「A」では、 と を作成NSConnectionregisterName:ます。プロセス 'B' では、 を呼び出してリモート オブジェクトを取得しますrootProxyForConnectionWithRegisteredName:。そして、プロセス「A」がそのオブジェクトを使用してクライアントオブジェクトメソッドを呼び出すように、クライアントオブジェクトポインターをリモートオブジェクトに設定します。プロセス「B」が起動して接続を確立するまで_clientObjは、nil です。を意図したイベントを受信する場合があります_clientObj


@interface Server : NSObject {
    @private
    id _clientObj;
}

質問: as を作成し、が構築されるまですべてのメッセージを保持する方法はあり _clientObjますかNSDistantObject_clientObj

4

1 に答える 1

0

要求した機能はすぐに利用できるわけではありませんが、着信メソッド呼び出しをキャプチャし、接続が有効になるまでそれらをキューに入れる NSDistantObject のサブクラスを作成できます。接続が有効になると、格納されているすべてのメソッド呼び出しをキューから取り出して転送できます。それ以降のメソッド呼び出しは、いわば「ライブ」で転送されます。

上記で説明したことを行うために NSDistantObject のサブクラスを作成する方法の例として、このコードを見てください。

GTMTransientRootProxy.mGTMTransientRootProxy.h

このコードは、接続がダウンしている間、NSDistantObject のメソッド呼び出しを静かに飲み込みますが、ダウンタイム中にメソッド呼び出しをキューに入れるように拡張できます。

于 2011-06-04T18:07:11.807 に答える