蓝牙停止主线程

时间:2014-12-21 22:28:45

标签: ios multithreading bluetooth

我有一个iOS 8应用程序,我用它通过蓝牙从1台设备传输数据到另一台设备。

我可以使用所有服务和特性,并且可以进行实际转移。

我试图将中央管理器推送到另一个线程,但是中央端的UI锁定,直到传输完成。当我查看乐器时,我看到线程1被钉住了。

我试过这个,但似乎没有用......

[[CBCentralManager alloc] initWithDelegate:self queue:dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_BACKGROUND, 0)];

CBManager投入后台的正确方法是什么,这样才不会破坏UI线程?

1 个答案:

答案 0 :(得分:1)

初始化CBCentralManager时指定队列将在该队列上传递CBCentralManager个委托事件,但您的数据传输由CBPeripheral方法执行。您应该在后台线程

上明确地将调用发送到writeValue