我正在编程一个节拍器应用程序,通过GameKit和PeerPickerController建立蓝牙连接,然后允许一个设备将控件发送到另一个设备,因此如果在一个设备上按下启动,节拍器将同时启动。
应用程序加载正常并搜索其他设备并说它在Xcode的调试器窗口中连接,但随后立即崩溃并出现此错误:
wait_fences:未收到回复:10004003
2012-05-27 20:51:50.820 MetroConnect [5689:707] - [MetroConnectViewController会话:didFailWithError:]:无法识别的选择器发送到实例0x1793f0 2012-05-27 20:51:50.824 MetroConnect [5689:707] *由于未捕获的异常'NSInvalidArgumentException'终止应用程序,原因:' - [MetroConnectViewController session:didFailWithError:]:无法识别的选择器发送到实例0x1793f0' * 第一次抛出调用堆栈: (0x3126388f 0x375a1259 0x31266a9b 0x31265a83 0x311c0650 0x34141b5f 0x311c21fb 0x31b7f747 0x31237ad3 0x3123729f 0x31236045 0x311b94a5 0x311b936d 0x33233439 0x3091ccd5 0x5023 0x4fc8) 终止调用抛出异常(lldb)
我想知道是否有人能告诉我哪里出错了?我以类似的方式创建了一个不同的应用程序,在两个设备之间发送聊天消息,并且工作正常,我看不出这个实现与Metronome实现之间的任何差异。
答案 0 :(得分:0)
好像你是GKSession委托,但是没有实现所需的委托方法。毕竟,出于某种原因,它们是必需的。使用类似的东西实现session:didFailWithError:方法,并检查是否正确实现了其余部分:
- (void)session:(GKSession *)session didFailWithError:(NSError *)error {
NSLog(@"Session connection failed with error %@",[error localizedDescription]);
}