iOS, получение «моментального снимка» доступных сервисов Bonjour

Для моего приложения iOS я хочу проверить при запуске, есть ли конкретная служба, рекламируемая с использованием Bonjour, и если да, то подключиться к этому хосту (вместо указанного URL-адреса).

Я реализовал в своем коде:

if (self.services) {
    [self.services removeAllObjects];
} else {
    self.services = [[NSMutableArray alloc] init];

    self.serviceBrowser = [[NSNetServiceBrowser alloc] init];

    [self.serviceBrowser setDelegate:self];
    [self.serviceBrowser searchForServicesOfType:@"_myapp1._tcp." inDomain:@""];
}

Если служба найдена, вызывается didFindService, и через NSNotificationCenter я получаю имя хоста и порт службы результата и продолжаю действовать как обычно.

Если служба НЕ найдена, мое приложение остается там... в ожидании... (я знаю, что это ожидаемо).

Есть ли способ сказать, что после, например. 5 секунд «отмена»? Каким-то образом мне нужно вызвать [self.serviceBrowser stop], но я не вижу такой опции. Как я должен быть в состоянии выполнить это?


person Kostas    schedule 26.05.2015    source источник


Ответы (1)


Вам нужно будет установить собственный тайм-аут, используя что-то вроде NSTimer.

person Patrick Tescher    schedule 27.05.2015