我使用多重连接类实现了一个简单的聊天应用程序,一切正常。但是在聊天过程中,如果用户按下后退按钮,我想断开该用户并让他回到主屏幕。这是我目前的背压代码。
- (void)onBackTouched:(id)sender
{
dispatch_async(dispatch_get_main_queue(), ^{
[self.navigationController popViewControllerAnimated:YES];
[self.appDelegate.mpcHandler.session disconnect];
self.appDelegate.mpcHandler.browser=nil;
self.appDelegate.mpcHandler.advertiser=nil;
self.appDelegate.mpcHandler.session=nil;
self.appDelegate.mpcHandler.peerID=nil;
});
}
//These are the declaration of properties in my multipeer class
@property (nonatomic, strong) MCPeerID *peerID;
@property (nonatomic, strong) MCSession *session;
@property (nonatomic, strong) MCBrowserViewController *browser;
@property (nonatomic, strong) MCAdvertiserAssistant *advertiser;
这有效,但在弹回主屏幕之前大约有4-5秒的延迟。另一个问题是,当我尝试与早期会话断开连接而未杀死应用程序时连接其他用户时,MCBrowserViewController复制每个设备列表,即它保存早期会话中的信息,有没有办法清除它?然而,聊天应用程序正常工作没有任何问题。我目前正在使用iOS 7.1.1