2

我正在编写一个节拍器应用程序,它通过 GameKit 和 PeerPickerController 建立蓝牙连接,然后允许一个设备将控件发送到另一个设备,因此如果在一个设备上按下开始,节拍器就会在两个设备上启动。

该应用程序加载正常并搜索其他设备并说它在 Xcode 的调试器窗口中已连接,但随后立即崩溃并出现以下错误:

wait_fences:未能收到回复:10004003

2012-05-27 20:51:50.820 MetroConnect[5689:707]-[MetroConnectViewController session:didFailWithError:]:无法识别的选择器发送到实例 0x1793f0 2012-05-27 20:51:50.824 MetroConnect[5689:707] * 终止应用程序due to uncaught exception 'NSInvalidArgumentException', reason: '-[MetroConnectViewController session:didFailWithError:]: unrecognized selector sent to instance 0x1793f0' * First throw call stack: (0x3126388f 0x375a1259 0x31266a9b 0x31265a83 0x311c0650 0x34141b5f 0x311c21fb 0x31b7f747 0x31237ad3 0x3123729f 0x31236045 0x311b94a5 0x311b936d 0x33233439 0x3091ccd5 0x5023 0x4fc8)终止调用抛出异常(lldb)

我想知道是否有人可以告诉我哪里出错了?我以类似的方式制作了一个不同的应用程序,可以在两个设备之间发送聊天消息并且工作正常,我看不出这个实现和节拍器实现之间有任何区别。

4

1 回答 1

0

似乎您是 GKSession 委托,但没有实现所需的委托方法。毕竟,需要它们是有原因的。使用类似这样的方法实现 session:didFailWithError: 方法,并检查其余部分是否正确实现:

- (void)session:(GKSession *)session didFailWithError:(NSError *)error {
    NSLog(@"Session connection failed with error %@",[error localizedDescription]);
}
于 2012-05-27T20:14:01.230 回答