- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我希望做这样的事情:
在 netServiceBrowser:didFindService:moreComing:
[self.foundServices addObject:aNetService];
并且在 netServiceBrowser:didRemoveService:moreComing:
[self.foundServices removeObject:aNetService];
但是,返回的服务不会被 NetServiceBrowser 保留,因此 didRemoveService
中给出的服务与数组中的服务不是同一个对象。如何比较服务以确保我删除的服务是正确的?
最佳答案
您对此想得太多了,并在脑海中制造了一个不存在的问题。在传递给 didRemoveService:
的对象上使用 removeObject:
。 removeObject:
根据对象对 isEqual:
的响应进行删除,而不是对象的地址或标识。所以这会起作用。
答案真的很简单:
[self.foundServices removeObject:aNetService];
Apple 对 removeObject 的描述:
解释了这一点:
This method uses
indexOfObject:
to locate matches and then removes them by usingremoveObjectAtIndex:
. Thus, matches are determined on the basis of an object’s response to theisEqual:
message.
(为了完整起见,Apple 确实提供了一个通过地址删除对象的函数。这就是 removeObjectIdenticalTo:
。但是,这不是您想要的行为。只需使用 removeObject:
.)
引用资料:
关于ios - NetServiceBrowser 在删除时提供不同的 NetService,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8470802/
我现在正在编写一个Bonjour服务监听器类,根据文档here: 目前,它似乎有效,我可以正确接收“netServiceBrowserWillSearch:”和“didFindService:more
我希望做这样的事情: 在 netServiceBrowser:didFindService:moreComing: [self.foundServices addObject:aNetService]
最近我将手机更新到 iOS 14,此后 netServiceBrowser.searchForServices(ofType:"xyz._tcp", inDomain: "local.") 根本无法工
我正在尝试运行 NetServiceBrowser。一旦新的 ZeroConf 设备出现在网络上,它将立即检测到该设备。但是,它不会检测设备何时从网络中删除。 netServiceBrowser(aN
我有这段代码可以在本地网络上查找一些服务。如果我在我的 iPad 上安装该应用程序或使用模拟器它会工作正常,但如果我使用 TestFlight 我找不到任何服务。感谢您的帮助 import Found
我是一名优秀的程序员,十分优秀!