CoreBluetooth XPC连接在关闭视图控制器时无效

问题描述:

当我从蓝牙设备断开连接后,发现它们已在didDisconnectPeripheral委托中断开连接,我试图关闭我的viewcontroller。CoreBluetooth XPC连接在关闭视图控制器时无效

发生这种情况时我看到消息:“[CoreBlueooth] XPC连接无效”

有什么具体具有视图 - 控制被解雇之前清理与蓝牙?

+1

这似乎并没有进行相关的视图控制器。每当CBCentralManager被取消分配时,我都会收到此消息。只需用一个局部变量进行测试,例如CBCentralManager(委托:无,队列:无)。范围一结束,该错误消息就会弹出。 – bcause

我把CBCentralManager放到一个singleton中,并且错误信息解决了。

CBCentralManager不会被解除分配)

+0

谢谢。这帮助我解决了我的问题。您可以将CBCentralManager作为类变量(在函数外部声明)而不是局部变量。 –

尝试:

CBPeripheral *mConnectedPeripheral; 

-(void)viewDidDisappear:(BOOL)animated{ 
    [_centralManager cancelPeripheralConnection:mConnectedPeripheral]; 
} 

我得到以下信息:

[CoreBlueooth] XPC连接无效

我无法扫描BLE设备用一个很简单的执行下列操作:

NSObject<CBCentralManagerDelegate, CBPeripheralDelegate> 

对我来说,解决办法是在我Info.plist隐私添加值 - 蓝牙外设使用说明NSBluetoothPeripheralUsageDescription描述我做什么用蓝牙外设。

看起来这在info.plist

<key>NSBluetoothPeripheralUsageDescription</key> 
<string>Play with BLE Compatible devices<string> 

写的东西在这里更准确;)

+1

试过..不好运气! –

+0

当发生这种情况时,请尝试**隔离您的问题**,以便确定是什么让它失败。你也可以在这里评论更多细节。有很多开源项目可以扫描设备,甚至可以写入“特性”等。[chenee/DarkBlue](https://github.com/chenee/DarkBlue)对我很有帮助。对于快捷项目:[Pluto-Y/Swift-LightBlue](https://github.com/Pluto-Y/Swift-LightBlue)。在我的情况下,我开始了一个空白的项目,并与我的设备进行通信的最小代码,必须添加'NSBluetoothPeripheralUsageDescription',它的工作 – GabLeRoux

+0

不适合我。 –