XP C сервис для поддержки нескольких протоколов - PullRequest
3 голосов
/ 10 февраля 2020

В моем проекте XCode есть цель, которая генерирует XPCService. Теперь я буду sh для реализации большего количества функций в другом контексте, поэтому я хотел бы добавить их в другой протокол.

Я sh, что текущая служба поддержки xp c поддерживает оба протокола.

код по умолчанию для поддержки одного протокола выглядит следующим образом:

    // Create the delegate for the service.
    ServiceDelegate *delegate = [ServiceDelegate new];

    // Set up the one NSXPCListener for this service. It will handle all incoming connections.
    NSXPCListener *listener = [NSXPCListener serviceListener];
    listener.delegate = delegate;

    // Resuming the serviceListener starts this service. This method does not return.
    [listener resume];

, тогда как ServiceDelegate имеет следующий метод:

- (BOOL)listener:(NSXPCListener *)listener shouldAcceptNewConnection:(NSXPCConnection *)newConnection {

и я установил протокол для этого соединения решительно без возможности выбора myFirstProtocol

newConnection.exportedInterface = [NSXPCInterface interfaceWithProtocol:@protocol(myFirstProtocol)];

теперь у меня есть mySecondProtocol, и я хочу выбрать протокол в соответствии с атрибутом соединения что я отправляю на стороне клиента .. Я ищу какой-то идентификатор, который поможет мне выбрать правильный интерфейс.

спасибо!

...