1

私のヘルパー エージェント アプリは、起動後に常に 1 つのアクティビティを実行する必要がありますが、XPC を介してメイン アプリと通信する必要もあります。

ただし、リスナーのセットアップには特定のメイン関数が必要であり、それがアプリを引き継ぎます (標準の AppDelegate NSApplication アプローチを省略します)。

int main(int argc, const char *argv[])
{
    NSString *bundleId = [[NSBundle mainBundle] bundleIdentifier];
    NSXPCListener *listener = [[NSXPCListener alloc] initWithMachServiceName:bundleId];
    XX *xx = [XX new];
    listener.delegate = xx;
    [listener resume];
    return 0;
}

両方を持つ方法は?NSRunLoop と NSXPCListener アプリを使用したバックグラウンド アプリ?

4

1 に答える 1

0

NSApplication は AppKit フレームワークの一部です。そのため、エージェントとしてコマンド ライン ツールを記述した場合、これを使用することはできません。もちろん、NSRunLoop を使用することもできます。で実行ループを開始するだけ[[NSRunLoop currentRunLoop] run];です。これを後に追加する[listener resume]と、プロセスが稼働し続けます。

于 2014-08-11T14:58:21.587 に答える