iOS Bonjour Swift 3 搜索永不停止

标签 ios swift xcode service bonjour

我正在使用 NetServiceBrowser 在我当前的网络中激活搜索服务,但我遇到了问题。当服务被激活时,服务会正确地找到这些并停止搜索,但在另一种情况下,当没有找到任何服务时,NetServiceBrowser 永远不会停止搜索。我可以调用带超时的搜索方法吗?

代码:

var _netServiceBrowser : NetServiceBrowser?
self._netServiceBrowser = NetServiceBrowser()
self._netServiceBrowser?.delegate = self
self._netServiceBrowser?.searchForServices(ofType:"_http._tcp", inDomain:"local.")
//...
//TODO
//...
self._netServiceBrowser.stop()

当收到所有数据时,我会停止 NetServiceBrowser,但如果没有检测到任何服务,则永远不会调用任何回调,因为我无法停止此操作

谢谢:)

解决方案

我找到了一个解决方案,我加入了一个延迟函数

func delay(_ delay:Double, closure:@escaping ()->()) {
    let when = DispatchTime.now() + delay
    DispatchQueue.main.asyncAfter(deadline: when, execute: closure)
}


delay(2.0, closure: {self._netServiceBrowser.stop()})

最佳答案

我找到了一个解决方案,我包含了一个延迟函数

func delay(_ delay:Double, closure:@escaping ()->()) {
    let when = DispatchTime.now() + delay
    DispatchQueue.main.asyncAfter(deadline: when, execute: closure)
}


delay(2.0, closure: {self._netServiceBrowser.stop()})

我在问题的末尾添加了这个

关于iOS Bonjour Swift 3 搜索永不停止,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42717027/

相关文章:

ios - Swift 5 CAKeyframeAnimation - 应用程序移至后台后恢复图层动画

ios - SWIFT - 'double' 不可转换为 'string'

objective-c - x代码 : Passing a Label text into a custom added subview

ios - 您如何管理 iOS 应用程序中的注册和登录用户?

ios - 始终在我的 iOS 应用程序的 Facebook 对话框中显示验证码

ios - 检查已通过 GKMatchDelegate didReceiveData 接收到整个结构

ios - 如何在 iOS 设备上诊断 dlopen() 中的故障

ios - 尝试理解委托(delegate)

ios - Cocoapods 单元测试目标问题

ios - CocoaPods 和 Parse 的 Mach-O 链接器错误