Проблемы NSNetServiceBrowser на iOS - не обнаружение всех изменений
Я думаю, что это может быть ошибка iOS.
Я запускаю следующий простой код, чтобы транслировать сетевой сервис:
self.netService = [[NSNetService alloc] initWithDomain:@"local."
type:@"_testnetwork._tcp."
name:[[UIDevice currentDevice] name]
port:port];
self.netService.delegate = self;
[self.netService publish];
На другом устройстве я запускаю этот код для обнаружения сетевых сервисов:
self.netServiceBrowser = [[NSNetServiceBrowser alloc] init];
self.netServiceBrowser.delegate = (id)self;
[self.netServiceBrowser searchForServicesOfType:@"_testnetwork._tcp." inDomain:@"local."];
Что происходит, так это то, что браузер будет обнаруживать, когда сетевая служба появляется впервые, а затем, когда служба уходит, большую часть времени она не обнаруживает ее и все еще думает, что NSNetService все еще вещает. Интересно, что приложения могут быть остановлены на обоих устройствах, а также может быть запущен браузер, и он все равно обнаружит, что старая служба транслируется в данный момент - она зависает.
Использование этого кода в терминале на Mac правильно показывает, когда службы появляются и исчезают:
dns-sd -B _test._tcp
Любое решение этой проблемы? Это ошибка iOS?