             self.central.continuation.connect[peripheral] = nil
         }
         
+        @objc(centralManager:didDisconnectPeripheral:error:)
         func centralManager(
             _ central: CBCentralManager,
             didDisconnectPeripheral corePeripheral: CBPeripheral,
             error: Swift.Error?
         ) {
                         
-            log(corePeripheral.gattIdentifier.uuidString, error?.localizedDescription)
+            if let error = error {
+                log("Did disconnect peripheral \(corePeripheral.gattIdentifier.uuidString) due to error \(error.localizedDescription)")
+            } else {
+                log("Did disconnect peripheral \(corePeripheral.gattIdentifier.uuidString)")
+            }
             
             let peripheral = Peripheral(corePeripheral)
             self.central.continuation.didDisconnect.yield(peripheral)

        
        func peripheralIsReady(toSendWriteWithoutResponse peripheralObject: CBPeripheral) {
            
            log(peripheralObject.gattIdentifier.uuidString)
            
            let peripheral = Peripheral(peripheralObject)
            if let continuation = self.central.continuation.isReadyToWriteWithoutResponse[peripheral] {

            connectionEventDidOccur event: CBConnectionEvent,
            for corePeripheral: CBPeripheral
        ) {
            log("\(corePeripheral.gattIdentifier.uuidString) connection event")
        }
        #endif
        
        @objc(centralManager:didConnectPeripheral:)
        func centralManager(
            _ centralManager: CBCentralManager,
            didConnect corePeripheral: CBPeripheral
        ) {
            log("Did connect to peripheral \(corePeripheral.gattIdentifier.uuidString)")
            assert(corePeripheral.state != .disconnected, "Should be connected")
            assert(self.central != nil)
            assert(self.central?.centralManager === centralManager)
