5

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

4

1 回答 1

0

不幸的是,这很常见,这是由于底层的 bonjour 发现服务机制造成的。这实际上取决于一系列因素,包括重新广播 bonjour 可用性的某些网络设备。

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

很快它看起来像这样

让 uuid = NSUUID().UUIDString

self.peer = MCPeerID(显示名称:uuid)

...

...当您从会话代表处获得找到的对等消息时:

if peerID.displayName != self.peer.displayName { ... 在此处将对等点添加到可用的对等点数组中}

于 2016-05-18T18:46:44.830 回答