我有一个正在开发的应用程序,我正在使用多点框架在一些iPads之间发送数据。我正在使用MCBrowserViewController和ConnectionViewController设置会话,所有这些都是按照苹果的示例进行的。
这非常有效,我可以通过两种方式发送我的数据。
然而,如果其中一个设备失去了连接,当它被发现时,我似乎不能再重新连接。
像Advertiser和Browser这样的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等等)
发布于 2014-07-11 12:44:47
我发现在有意或无意地与MCSession断开连接后重新使用MCPeerID对象是非常错误的,而且通常是不可能的(邀请总是失败)。对于我的应用程序来说,最有效的方法就是在断开连接后重新创建一个新的MCPeerID (然后使用新的MCPeerID重新创建一个新的MCNearbyServiceAdvertiser )。然后,您应该能够再次连接。
https://stackoverflow.com/questions/24613452
复制相似问题