1

我正在使用 NSNetService 使用 Bonjour 进行广播。但是当我想停止它时,我使用[netService stop]netService我的NSNetService. 它只是不会停止,它会被调用,但不会停止。netServiceDidStop没有被调用,所以我想我无法阻止它。顺便说一句,这个项目使用自动引用计数(ARC),我怀疑这是这个问题的原因。怎么了?

4

1 回答 1

0

你想通了吗?我看到同样的事情。但是 SimpleNetworking 的示例代码没有表现出这一点。就我而言,我只是在测试发布和停止 Bonjour 产品。我还没有打开任何流,这可能就是问题所在。更全面地说,我在我的 Mac 上运行了 BonjourBrowser.app,当我在我的 iOS 设备上启动我的 NSNetService 时,Bonjour 注册显示在 BonjourBrowser 中。当我停止 NSNetService 并将其从运行循环中删除时,BonjourBrowser 仍然显示注册,即使在使用该应用程序的“重新加载服务”按钮之后也是如此。相比之下,SimpleNetworking 会在您停止其服务器服务后立即从 BonjourBrowser 中消失。而且,有趣的是,SimpleNetworking 并没有从运行循环中移除服务(至少没有明确地)。

我怀疑我的 TimeCapsule 正在执行 Bonjour 睡眠代理,但我重新启动了它,并且 BonjourBrowser 从未显示我的服务消失了。

于 2012-04-24T19:03:07.377 回答