steamclock / bluejay

A simple Swift framework for building reliable Bluetooth LE apps.
MIT License
1.09k stars 98 forks source link

I have crash in willRestoreState #262

Open bluendev opened 2 years ago

bluendev commented 2 years ago

Summary: I used backgroundRestoreMode at bluejay.start mode. But I have a crash in this code when my app start.

public func centralManager(_ central: CBCentralManager, willRestoreState dict: [String: Any]) {

    debugLog("Central manager will restore state.")

    guard let peripherals = dict[CBCentralManagerRestoredStatePeripheralsKey] as? [CBPeripheral], let cbPeripheral = peripherals.first else {
        debugLog("No peripherals found during state restoration.")
        endStartupBackgroundTask()
        return
    }

    let peripheral = Peripheral(delegate: self, cbPeripheral: cbPeripheral, bluejay: self)
    precondition(peripherals.count == 1, "Invalid number of peripheral to restore.")
    debugLog("Peripheral state to restore: \(cbPeripheral.state.string())")

I have problem this line " precondition(peripherals.count == 1, "Invalid number of peripheral to restore.") " in bluejay.swif code

Don't other people have this problem?