我正在使用gamekit进行蓝牙文件传输。它在第一视图中完美运行。建立连接后,我想在下一个视图中继续相同的会话。怎么做?
编辑: 我已经在AppDelegate中使用了GKSession对象,以便我可以在整个应用程序中使用它,但是我无法在超过1个类的委托选择器中获得该会话。我想在下一页中使用app.currentSession,以便数据交换也可以在下一个类中继续。 代码:
-(IBAction) Connect:(id)sender{
picker = [[GKPeerPickerController alloc]init];
picker.delegate = self;
picker.connectionTypesMask = GKPeerPickerConnectionTypeNearby;
[btnConnect setHidden:YES];
[btnDisconnect setHidden:NO];
[picker show];
}
- (void)peerPickerController:(GKPeerPickerController *)picker1 didConnectPeer:(NSString *)peerID toSession:(GKSession *) session{
app.currentSession = session;
session.delegate = self;
[session setDataReceiveHandler:self withContext:nil];
picker.delegate = nil;
[picker dismiss];
[picker autorelease];
}
答案 0 :(得分:1)
如果没有看到您的代码,可能会有很多原因。但是,我假设您在视图中以某种方法创建GKSession。我建议这不是正确的地方,你需要重新审视你的应用程序设计。