我有一个应用程序正在使用iOS 7 Multipeer Connectivity框架来宣传自己以及浏览其他设备。为什么我的MCNearbyServiceBrowser
实例会找到自己(应用程序运行的设备)并调用browser:foundPeer...
委托方法?如果我记录我创建的实际PeerID
以开始宣传我的设备,以及委托方法中发现的PeerID
,则它们具有不同的唯一ID但具有相同的显示名称。有什么想法吗?
答案 0 :(得分:0)
遗憾的是,这是非常常见的,这是由于潜在的bonjour发现服务机制。这实际上取决于一系列因素,包括重新播放bonjour可用性的某些网络设备。
在您的应用程序中避免这种情况的最佳方法是为您的MCPeerID使用唯一的字符串(我通常使用新的UUID字符串)并在您的对等浏览器UI中显示每个peerID的显示名称之前检查每个peerID的显示名称
在swift中,它看起来像这样
让uuid = NSUUID()。UUIDString
self.peer = MCPeerID(displayName:uuid)
...
...当您从会话代理处获得找到的对等消息时:
如果peerID.displayName!= self.peer.displayName { ...在这里将对等体添加到可用的对等阵列 }