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] но я не вижу такой возможности. Как я должен быть в состоянии сделать это?

1 ответ

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

Другие вопросы по тегам