Multipeer丢失并找到了

时间:2014-07-07 14:48:37

标签: ios multipeer-connectivity

我有一个应用程序,我正在使用Multipeer Framework在某些iPad之间发送数据。我按照Apple的例子使用MCBrowserViewController和ConnectionViewController设置会话。

这非常好用,我可以通过两种方式发送数据。

但是,如果其中一个设备断开了连接,我就不会再找到它了。

使用像广告商和浏览器这样的MCNearbyServices似乎没有做任何事情。 LostPeer和FoundPeer永远不会被调用。我的MCManager类中有两个代理(广告商和浏览器)。当我们回到范围或应用程序再次运行时,我应该能够自动重新连接吗?

我在@bradenm建议之后试过这个......

    -(void)reconnect
{
    _myPeerID = [[MCPeerID alloc]initWithDisplayName:[UIDevice currentDevice].name];

    _nearbyAdvertiser = [[MCNearbyServiceAdvertiser alloc]
                         initWithPeer:_myPeerID
                         discoveryInfo:nil
                         serviceType:kServiceType];

    _nearbyAdvertiser.delegate = self;
    _nearbyBrowser.delegate = self;

    [self setAdvertising:YES];
    [self setBrowsing:YES];

}

但我没有得到任何其他方法(foundPeer等)

1 个答案:

答案 0 :(得分:1)

我发现在故意或无意中与MCSession断开连接后重新使用MCPeerID对象是非常错误的并且通常是不可能的(邀请总是失败)。对我的应用程序有效的方法是在断开连接后重新创建一个新的MCPeerID(并使用新的MCPeerID重新创建一个新的MCNearbyServiceAdvertiser)。然后你应该能够再次连接。