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