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

Posted

技术标签:

【中文标题】iOS 7 Multipeer Connectivity- MCNearbyServiceBrowser 找到自己了吗?【英文标题】:iOS 7 Multipeer Connectivity- MCNearbyServiceBrowser finds itself? 【发布时间】:2014-03-20 07:06:23 【问题描述】:

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

【问题讨论】:

您找到发生这种情况的原因了吗? 我也有同样的问题 【参考方案1】:

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

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

很快它会是这样的

让 uuid = NSUUID().UUIDString

self.peer = MCPeerID(displayName: uuid)

...

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

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

【讨论】:

以上是关于iOS 7 Multipeer Connectivity- MCNearbyServiceBrowser 找到自己了吗?的主要内容,如果未能解决你的问题,请参考以下文章

iOS 7:通过 wi-fi 或对等 wi-fi 使用 Multipeer Connectivity 连接设备

多点连接 tvOS swift 的替代方案

Multipeer Framework iOS 可靠

Multipeer Connectivity IOS:didFinishReceivingResourceWithName 错误处理(崩溃)

在 Swift 中通过 Multipeer Connectivity 临时同步两个 iOS 设备

iOS8 AVAudioEngine如何通过Multipeer Connectivity发送麦克风数据?