2017-01-10 6 views
2

私は、メインアプリケーションから2つの異なるXPCサービスを分離したアプリケーションに取り組んでいます。私はXPCサービスが他のXPCサービスと通信して何らかの処理を行い、そのデータを最初のサービスに戻し、その最初のサービスが独自の処理を行い、次にメインアプリケーションにデータを返すことを望んでいます。私もこれを試しましたが、サービス間の通信は "ヘルパーアプリケーションと通信できませんでした"というエラーを出します。XPCからXPCへの通信

私の質問は、これが可能かどうかです。はいの場合は何が必要ですか?

ご協力いただければ幸いです。

答えて

2

私は、2つのプロセスが必然的に同じXPCServiceと通信できなくなることを発見しました。これは、XPCServiceを起動しようとすると、ランチャーに固有のプロセスになるためです。そして、私が知る限り、プロセスが起動したXPCServiceとしか通信できません。

私はあなたの2番目のXPCServiceが最初のXPCServiceを "起動"できなくなり、そのために通信できなくなると思います。

2番目のXPCServiceをメインのアプリケーションプロセスに返信させて、最初のXPCServiceと通信することをお勧めします。あなたが何か行うことができ

[[self.firstXPCConnection remoteObjectProxy] getSomeString:^(NSString *myString) { 
     [[self.secondXPCConnection remoteObjectProxy] passSomeString:myString]; 
    }]; 

ものの免責事項を、私はこれを試していません。しかし、私が持っている知識をもってお手伝いします。

+0

[-NSXPCConnection initWithMachServiceName:options:](https://developer.apple.com/documentation/foundation/nsxpcconnection)を使って新しいNSXPCConnectionを作成することができます。/1418074-initwithmachservicename?language = objc)、他のXPCが接続を受け付けるデリゲートを持っている限りです。 – user1118321

関連する問題