Kommunizieren Sie mit einer anderen App über XPC

Ich habe eine Windows-App, und um einige Funktionen hinzuzufügen, benötige ich eine andere App, die beim Anmelden gestartet wird und Daten mit dem Server synchronisiert, sofern verfügbar.

Ich habe es mit NSDistributionNotification versucht, aber es ist in einer Sandbox-App praktisch nutzlos. Ich habe XPC nachgeschlagen und gehofft, dass es funktioniert, aber ich weiß nicht, wie ich es mit dem Helfer zum Laufen bringen kann. Bisher habe ich dies mit XPC gemacht.

Haupt-App

    NSXPCInterface *remoteInterface = [NSXPCInterface interfaceWithProtocol:@protocol(AddProtocol)];
    NSXPCConnection *xpcConnection = [[NSXPCConnection alloc] initWithServiceName:@"com.example.SampleService"];

    xpcConnection.remoteObjectInterface = remoteInterface;

    xpcConnection.interruptionHandler = ^{
        NSLog(@"Connection Terminated");
    };

    xpcConnection.invalidationHandler = ^{
        NSLog(@"Connection Invalidated");
    };

    [xpcConnection resume];

    NSInteger num1 = [_number1Input.stringValue integerValue];
    NSInteger num2 = [_number2Input.stringValue integerValue];

    [xpcConnection.remoteObjectProxy add:num1 to:num2 reply:^(NSInteger result) {
        NSLog(@"Result of %d + %d = %d", (int) num1, (int) num2, (int) result);
    }];

XPC-Service

In main () ...
SampleListener *delegate = [[SampleListener alloc] init];
NSXPCListener *listener = [NSXPCListener serviceListener];
listener.delegate = delegate;
[listener resume];

// In delegate
-(BOOL)listener:(NSXPCListener *)listener shouldAcceptNewConnection:(NSXPCConnection *)newConnection {
    NSXPCInterface *interface = [NSXPCInterface interfaceWithProtocol:@protocol(AddProtocol)];
    newConnection.exportedInterface = interface;
    newConnection.exportedObject = [[SampleObject alloc] init];
    [newConnection resume];
    return YES;
}

// In Exported Object class

-(void)add:(NSInteger)num1 to:(NSInteger)num2 reply:(void (^)(NSInteger))respondBack {
    resultOfAddition = num1 + num2;
    respondBack(resultOfAddition);
}

Dies funktioniert gut, jetzt muss ich dieses Ergebnis an die Helper-App übergeben. Wie kann ich das machen ? Wenn XPC hier nicht die Antwort für die Kommunikation ist, welches sollte ich dann verwenden? Irgendwelche Hinweise bitte?

Antworten auf die Frage(2)

Ihre Antwort auf die Frage