首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >多对等体失物招领

多对等体失物招领
EN

Stack Overflow用户
提问于 2014-07-07 22:48:37
回答 1查看 398关注 0票数 0

我有一个正在开发的应用程序,我正在使用多点框架在一些iPads之间发送数据。我正在使用MCBrowserViewController和ConnectionViewController设置会话,所有这些都是按照苹果的示例进行的。

这非常有效,我可以通过两种方式发送我的数据。

然而,如果其中一个设备失去了连接,当它被发现时,我似乎不能再重新连接。

像Advertiser和Browser这样的MCNearbyServices似乎什么也做不了。LostPeer和FoundPeer从未被调用过。我的MCManager类中有两个代理(广告商和浏览器)。当然,当它们回到范围内或应用程序再次运行时,我应该能够自动重新连接?

在@bradenm建议之后我试过了.

代码语言:javascript
复制
    -(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等等)

EN

回答 1

Stack Overflow用户

发布于 2014-07-11 12:44:47

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

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24613452

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档