首页 > 解决方案 > 如何删除已发布的服务 NetService

问题描述

我正在使用最新的 Swift 文档来编写能够发布和搜索的 NetService。但我无法从发布者那里删除服务。这里无法理解 RunLoop 的作用。但是,如果我终止该应用程序,则服务将被删除。

这是用于发布服务的代码。

class ServicePublisher : NSObject {
    var nsNetService : NetService!
    init?(domain : String, type : String, name : String, port : Int32){
        nsNetService = NetService(domain: domain, type: type, name: name, port: port)
        if nsNetService == nil{
            return nil
        }
    }
    func publish() {
        nsNetService.publish(options:NetService.Options.listenForConnections)
    }
    func setDelegate(delegate : NetServiceDelegate) {
        nsNetService.delegate = delegate
    }
    func stop(){
        nsNetService.stop()
    }
}

标签: iosswiftbonjournsnetservice

解决方案


nsNetService.stop() 应该停止服务并将其从 DNS SD 中删除。NetServiceBrowser 还能够检测服务的删除。我的错误是我没有将 UIButton 与应该调用 stop() api 的函数连接起来,因此没有删除服务。


推荐阅读