我正在开发ios 7中的Multipeer连接并且工作得很好。但我需要的是,当我按下搜索按钮时,它需要显示所有附近的会话(不是附近的设备 )。有什么可能的解决方案。请帮助!!!
答案 0 :(得分:0)
您没有说明为什么要在对等体之间传递MCSession
个对象,但是一旦有两个连接的对等体,就可以使用一个对等体传递符合NSCoding
协议的任何对象MCSession数据发送方法如
- (BOOL)sendData:(NSData *)data toPeers:(NSArray *)peerIDs withMode:(MCSessionSendDataMode)mode error:(NSError **)error
然而,MCSession不符合NSCoding,因此您最好在同级之间从MCSession发送元数据。因此,如果Peer A和Peer B已连接,并且Peer A想知道Peer B连接到哪个其他对等端,则Peer B可以发送一个NSString
对象数组,列出每个对等端的displayName
。 / p>
但是,即使你这样做,如果同伴A没有发现(或被发现的)同伴B的连接同伴,你无论如何都无法与他们通信。你正在寻找在同伴之间发送MCSession
对象的方法,这意味着可能有更好的方法来解决你想要实现的目标。
<强> TL;博士强>
MCSession
处理对等体之间的连接。首先需要连接对等体以共享其MCSession对象。
答案 1 :(得分:0)
您无法宣传MCSession
,而是使用多个MCNearbyServiceBrowser
对象和MCNearbyServiceAdvertiser
对象来浏览和宣传多种服务类型。
使用MCNearbyServiceAdvertiser
初始化initWithPeer:discoveryInfo:serviceType:
时
将您的服务名称(服务类型)放入发现信息中,以便在MCNearbyServiceBrowser
MCNearbyServiceBrowserDelegate
内browser:foundPeer:withDiscoveryInfo:
(浏览相同的服务类型)找到同伴时,您可以确定服务类型并在UI中显示。
通过这种方式,同一个对等体将多次出现在不同的服务类型中。您可以选择所需的服务类型继续。
我恳请您为每种服务类型使用单独的MCSession
。
为此,您需要仔细维护所有浏览器和广告客户对象。
希望它有所帮助。