Tôi đang cố gắng nghe tất cả các sự kiện kết nối/ngắt kết nối Bluetooth. Mặc dù chức năng centralManagerDidUpdateState
của đại biểu được gọi, không có gì xảy ra khi tôi kết nối hoặc ngắt kết nối thiết bị Bluetooth.Chức năng kết nối đại biểu iOS Bluetooth không được gọi là
Tôi đang nhầm lẫn về những gì đang xảy ra. Tôi khởi sự Trung ương quản lý/đại biểu như thế này:
var btDelegate: CBCentralManagerDelegate = BluetoothDelegate()
var btManager = CBCentralManager(delegate: btDelegate, queue: nil)
BluetoothDelegate được định nghĩa như sau:
import Foundation
import CoreBluetooth
class BluetoothDelegate : NSObject, CBCentralManagerDelegate {
func centralManager(central: CBCentralManager!, didConnectPeripheral peripheral: CBPeripheral!) {
println("connect") //this line is not called
}
func centralManager(central: CBCentralManager!, didDisconnectPeripheral peripheral: CBPeripheral!, error: NSError!) {
println("disconnect") //this line is not called
}
func centralManagerDidUpdateState(central: CBCentralManager!) {
println("state update") //this line is called
}
}
Lưu ý: Tôi có thể liên tục nhận được nhiều sự kiện cập nhật trạng thái như khi tôi chuyển đổi Bluetooth, mặc dù kết nối và ngắt kết nối không được gọi.
tôi đã không quen bản thân mình nhưng với cách cư xử Swift khi bạn có một tham chiếu đến một lớp cơ sở nhưng gán một đối tượng lớp được thừa kế hay - vì thế nếu btDelegate nên có loại BluttoothDelegate thay vì CBCentralManagerDelegate hay không tôi không thể nói. Nhưng nếu bạn không nhận được câu trả lời nào khác thì đó là một cái gì đó để thử. – Gruntcakes
Tôi vừa thử sử dụng BluetoothDelegate thay vì CBCentralManagerDelegate, nhưng hành vi không khác nhau. Nó là giá trị một thử mặc dù. Cảm ơn đã giúp đỡ! – lakantu
Đó là một trường trong lớp chúng tôi sử dụng; Tôi không nghĩ nó đã vượt quá phạm vi. Tôi không biết đó là một tài liệu tham khảo yếu - đó là điều tốt để biết. – lakantu