我正在使用NSNetService和NSNetServiceBrowser在网络上发布和扫描Bonjour服务.实施工作正常,服务在网络上找到,他们能够进行通信.我目前正在尝试理解框架的生命周期,这是我到目前为止所得到的:
// Scanning netServiceBrowserWillSearch: netServiceBrowser:didFindService:moreComing: // The device finds itself // Advertising netServiceWillPublish: netServiceDidPublish:
如果我在启用适配器的服务时会发生这种情况.现在,我需要随时了解该服务是否在网络上进行广告宣传; 也就是说,如果其他设备能够找到它.所以我关闭了Wi-Fi适配器进行测试:
netServiceBrowser:didRemoveService:moreComing: netServiceBrowser:didFindService:moreComing: // The device finds itself again, even after the adapter is turned off
然后我重新打开适配器:
netServiceBrowser:didRemoveService:moreComing: netServiceBrowser:didFindService:moreComing: // Yet again
问题是打开或关闭适配器绝对没有区别,所以我找不到模式.有没有其他方法可以捕捉到这些事件?
编辑:它变得最糟糕.即使我启动两个适配器关闭的服务(飞行模式)netServiceDidPublish:仍然被调用.到目前为止,似乎netServiceDidNotPublish:仅在我尝试两次注册相同服务时才被调用.这对我来说非常直观; 也许服务已发布到适配器,但不是网络,因此这些回调非常容易引起误解.此时,我无法知道该服务是否在网络上可见.