2017-05-09 6 views
7

Po zakończeniu odłączania od urządzeń Bluetooth, widząc, że zostały one rozłączone w delegacie didDisconnectPeripheral, próbuję odrzucić mój kontroler viewcontroller.Połączenie CoreBluetooth XPC Niepoprawne po zwolnieniu kontrolera podglądu

Kiedy to nastąpi widzę komunikat: „[CoreBlueooth] Przyłącze XPC nieprawidłowy”

Czy jest coś w szczególnych, który ma być oczyszczony z Bluetooth przed viewcontroller zostaje odrzucona?

+1

To nie wydaje się być związana z kontrolera widoku. Otrzymuję tę wiadomość za każdym razem, gdy program CBCentralManager zostanie zwolniony. Po prostu przetestuj za pomocą zmiennej lokalnej, np. CBCentralManager (delegate: nil, queue: nil). Jak tylko zakres się zakończy, pojawi się komunikat o błędzie. – bcause

Odpowiedz

1

Umieściłem CBCentralManager na singletonie i komunikat o błędzie został rozwiązany.

(CBCentralManager nie będą zwalniane)

+0

Dziękuję. To pomogło mi rozwiązać mój problem. Możesz ustawić CBCentralManager jako zmienną klasy (deklaruj ją poza funkcją) zamiast zmiennej lokalnej. –

0

spróbuj tego:

CBPeripheral *mConnectedPeripheral; 

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

ja otrzymuję następujący komunikat:

[CoreBlueooth] Połączenie XPC Nieprawidłowy

I nie mogłem skanować urządzeń BLE stosując dość proste wykonanie następujących czynności:

NSObject<CBCentralManagerDelegate, CBPeripheralDelegate> 

Rozwiązanie dla mnie było, aby dodać wartość w moim Info.plist dla Prywatność - Bluetooth Peripheral Wykorzystanie OpisNSBluetoothPeripheralUsageDescription opisując co zrobić z Bluetooth obwodowej.

Wygląda to w info.plist:

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

napisać coś bardziej dokładne tu;)

+1

wypróbowany .. Nie ma szczęścia! –

+0

Kiedy takie rzeczy się zdarzają, spróbuj ** wyizolować swój problem **, abyś mógł określić, co sprawia, że ​​się nie udaje. Możesz również skomentować tutaj więcej szczegółów. Istnieje wiele projektów open source, które skanują urządzenia, a nawet pozwalają pisać na "charakterystykę" itp. [Chenee/DarkBlue] (https://github.com/chenee/DarkBlue) był dla mnie pomocny. W przypadku projektów szybkich: [Pluto-Y/Swift-LightBlue] (https://github.com/Pluto-Y/Swift- LightBlue). W moim przypadku rozpocząłem pusty projekt i zrobiłem minimalny kod do komunikacji z moim urządzeniem, musiałem dodać 'NSBluetoothPeripheralUsageDescription' i zadziałało – GabLeRoux

+0

nie działa dla mnie. –

Powiązane problemy