我对iPhone上的蓝牙编程很新,我想在两个iOS设备之间建立PeerToPeer蓝牙连接。我按照本教程中的步骤进行了操作
http://www.devx.com/wireless/Article/43502/0/page/1
并且所有事情都应该发生,直到我在检测到其他设备时获得接受或拒绝选项。
一旦我选择接受,应用程序就会在两台设备上崩溃。显示的错误信息是: -
wait_fences:未收到回复:10004003 2012-03-05 15:40:25.809蓝牙[204:707] - [ViewController session:didFailWithError:]:无法识别的选择器发送到实例0x367fe0 2012-03-05 15:40:25.811蓝牙[204:707] * 由于未捕获的异常'NSInvalidArgumentException'终止应用程序,原因:' - [ViewController session:didFailWithError:]:无法识别的选择器发送到实例0x367fe0'
有人知道发生了什么事吗?
提前致谢!
答案 0 :(得分:0)
只需在您发布的链接中复制粘贴下面的内容:
如果人们无法成功构建和运行,您需要导入GameKit framework
(右键框架文件夹>现有框架> GameKit.framework)
添加到 BluetoothViewController.h 文件:
#import "GameKit/GKSession.h"
#import "GameKit/GKPeerPickerController.h"
答案 1 :(得分:0)
发现问题所在。犯了一个相当愚蠢的错误!
我写了一个方法如下
- (void)peerPickerController:(GKPeerPickerController *)picker
didConnectPeer:(NSString *)peerID
toSession:(GKSession *) session {
并在其中设置应用程序以使用
通过蓝牙接收数据[session setDataReceiveHandler:self withContext:nil];
我想我会首先检查连接是否已建立,然后考虑数据传输。但事实证明你不能这样做因为数据处理程序已经设置,我没有在自己实现它。当我写的时候,它工作得很好!
希望,这个采访人员犯了如此明显的错误!