2017-05-09 184 views
7

當我從藍牙設備斷開連接後,發現它們已在didDisconnectPeripheral委託中斷開連接,我試圖關閉我的viewcontroller。CoreBluetooth XPC連接在關閉視圖控制器時無效

發生這種情況時我看到消息:「[CoreBlueooth] XPC連接無效」

有什麼具體具有視圖 - 控制被解僱之前清理與藍牙?

+1

這似乎並沒有進行相關的視圖控制器。每當CBCentralManager被取消分配時,我都會收到此消息。只需用一個局部變量進行測試,例如CBCentralManager(委託:無,隊列:無)。範圍一結束,該錯誤消息就會彈出。 – bcause

回答

1

我把CBCentralManager放到一個singleton中,並且錯誤信息解決了。

CBCentralManager不會被解除分配)

+0

謝謝。這幫助我解決了我的問題。您可以將CBCentralManager作爲類變量(在函數外部聲明)而不是局部變量。 –

0

嘗試:

CBPeripheral *mConnectedPeripheral; 

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

我得到以下信息:

[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

不適合我。 –

相關問題