ios - 如何删除已发布的服务 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()
}
}
解决方案
nsNetService.stop() 应该停止服务并将其从 DNS SD 中删除。NetServiceBrowser 还能够检测服务的删除。我的错误是我没有将 UIButton 与应该调用 stop() api 的函数连接起来,因此没有删除服务。
推荐阅读
- r - Kableextra:更新到 R 4.0.3 并重新安装后,我无法正确运行每个单元格中包含多行换行文本的旧脚本
- spring-boot - 如何将 jhipster 生产网站部署到 https?
- javascript - 如何根据内容获取 HTML 元素的高度?
- html - 在弹性列表项之间设置空格
- flutter - 如何为这两个文本设置相同的对齐方式
- c# - 将 Datatable 从一个表单传递到另一个表单 C#
- android - 改造 IlegalStateExecption:关闭和打开请求
- laravel - Laravel - 如何清除每个请求的配置:缓存
- python - Python libusb:缺乏USB访问权限
- sql - 在 bigQuery 上运行的简单查询