iOS蓝牙编程 - 无法在两个iPad之间建立p2p

时间:2012-03-05 10:32:01

标签: iphone bluetooth p2p

我对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'

有人知道发生了什么事吗?

提前致谢!

2 个答案:

答案 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];

我想我会首先检查连接是否已建立,然后考虑数据传输。但事实证明你不能这样做因为数据处理程序已经设置,我没有在自己实现它。当我写的时候,它工作得很好!

希望,这个采访人员犯了如此明显的错误!