iOS 7多点连接- MCNearbyServiceBrowser发现自己?

6
我有一个应用程序,使用iOS 7的Multipeer Connectivity框架来宣传自己并浏览其他设备。为什么我的MCNearbyServiceBrowser实例会找到自己(运行该应用程序的设备),并调用browser:foundPeer...委托方法?如果我记录实际创建用于开始广告的对等端ID以及在委托方法中发现的对等端ID,则它们具有不同的唯一标识符但相同的显示名称。有任何想法吗?

你找到为什么会发生这种情况了吗? - Andrej Karadzic
我有同样的问题。 - Tristian
1个回答

0

这是非常普遍的问题,这是由于底层的Bonjour发现服务机制所致。这实际上取决于许多因素,包括重新广播Bonjour可用性的某些网络设备。

在您的应用程序中避免这种情况的最佳方法是为您的MCPeerID使用唯一的字符串(我通常使用新的UUID字符串),并在显示对等方浏览器UI之前检查每个peerID的显示名称与本地名称是否匹配。

在Swift中,它看起来像这样:

let uuid = NSUUID().UUIDString

self.peer = MCPeerID(displayName: uuid)

...

当您从会话委托收到找到对等方的消息时:

如果 peerID.displayName 不等于 self.peer.displayName,则在此处将对等方添加到可用对等方数组中。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接