2017-05-09 17 views
7

Sau khi tôi ngắt kết nối khỏi thiết bị bluetooth của mình, thấy rằng chúng đã bị ngắt kết nối trong đại biểu didDisconnectPeripheral, tôi cố gắng loại bỏ bộ điều khiển xem của mình.Kết nối CoreBluetooth XPC Không hợp lệ trên chế độ xem bỏ qua

Khi điều này xảy ra tôi thấy thông báo: "[CoreBlueooth] XPC kết nối không hợp lệ"

Có cái gì đó trong cụ thể mà phải được dọn dẹp với Bluetooth trước viewController được sa thải?

+1

này dường như không có liên quan đến bộ điều khiển xem. Tôi nhận được thông báo này mỗi khi CBCentralManager được deallocated. Chỉ cần thử nghiệm với biến cục bộ, ví dụ: CBCentralManager (đại biểu: nil, queue: nil). Ngay sau khi phạm vi kết thúc, thông báo lỗi đó sẽ xuất hiện. – bcause

Trả lời

1

Tôi đã đặt CBCentralManager cho một singleton và thông báo lỗi được giải quyết.

(CBCentralManager sẽ không được deallocated)

+0

Cảm ơn bạn. Điều này đã giúp tôi giải quyết vấn đề của mình. Bạn có thể biến CBCentralManager thành một biến lớp (khai báo nó bên ngoài hàm) thay vì biến cục bộ. –

0

thử điều này:

CBPeripheral *mConnectedPeripheral; 

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

tôi đã nhận được thông báo sau:

[CoreBlueooth] XPC kết nối không hợp lệ

Và tôi không thể quét các thiết bị BLE sử dụng một thực hiện khá đơn giản trong các cách sau:

NSObject<CBCentralManagerDelegate, CBPeripheralDelegate> 

Các giải pháp đối với tôi là để thêm một giá trị trong tôi Info.plist cho Bảo mật - Bluetooth Peripheral Cách sử dụng Mô tảNSBluetoothPeripheralUsageDescription mô tả những gì tôi làm với Bluetooth Peripheral.

Trông như thế này trong info.plist:

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

Viết một cái gì đó chính xác hơn ở đây;)

+1

đã cố gắng ..Không có may mắn! –

+0

Khi những việc như thế xảy ra, hãy thử ** cách ly vấn đề của bạn ** để bạn có thể xác định điều gì khiến nó không thành công. Bạn cũng có thể nhận xét ở đây với nhiều chi tiết hơn. Có rất nhiều dự án mã nguồn mở có thể quét tìm thiết bị và thậm chí cho phép bạn ghi vào 'các đặc tính', v.v. [chenee/DarkBlue] (https://github.com/chenee/DarkBlue) hữu ích cho tôi. Đối với các dự án nhanh: [Pluto-Y/Swift-LightBlue] (https://github.com/Pluto-Y/Swift-LightBlue). Trong trường hợp của tôi, tôi bắt đầu một dự án trống và đã làm các mã tối thiểu để giao tiếp với thiết bị của tôi, đã phải thêm 'NSBluetoothPeripheralUsageDescription' và nó làm việc – GabLeRoux

+0

không làm việc cho tôi. –

Các vấn đề liên quan