Может существовать незначительное недопонимание природы NSNetService - это вызывает ваше замешательство.
Вам следует сохранить ссылку на NSNetService, и когда вы захотите подключиться к ней, вы скажете ей:
- (void)resolveWithTimeout:(NSTimeInterval)timeout
Этот вызов немедленно возвращается, и вашему NSNetServiceDelegate сообщается, когда был найден адрес для этой службы.В идеале вы работаете в этих пределах.
Если вы действительно просто хотите активно следить за изменениями IP-адресов, а затем поддерживать экземпляр каждого NSNetService, вызывать startMonitoring () для каждого и поддерживать запись каждого netServiceDidResolveAddress ()обратный вызов, полученный вашим делегатом.