iOS 7 Multipeer Connectivity- MCNearbyServiceBrowser找到了自己?

时间:2014-03-20 07:06:23

标签: ios objective-c cocoa multipeer-connectivity

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

1 个答案:

答案 0 :(得分:0)

遗憾的是,这是非常常见的,这是由于潜在的bonjour发现服务机制。这实际上取决于一系列因素,包括重新播放bonjour可用性的某些网络设备。

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

在swift中,它看起来像这样

让uuid = NSUUID()。UUIDString

self.peer = MCPeerID(displayName:uuid)

...

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

如果peerID.displayName!= self.peer.displayName {     ...在这里将对等体添加到可用的对等阵列 }