From eb33aed95577ab56fefbd3cd8f148b7f5955ae06 Mon Sep 17 00:00:00 2001 From: astromonkee Date: Fri, 24 Sep 2021 19:12:15 +0900 Subject: [PATCH 1/2] Add `guard` check for descriptor.characteristic for Swift 5.5+ --- Sources/X1Kit/X1Kit.swift | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/Sources/X1Kit/X1Kit.swift b/Sources/X1Kit/X1Kit.swift index f4038ca..a994798 100644 --- a/Sources/X1Kit/X1Kit.swift +++ b/Sources/X1Kit/X1Kit.swift @@ -160,6 +160,11 @@ extension X1Mouse: CBPeripheralDelegate { } func peripheral(_ peripheral: CBPeripheral, didUpdateValueFor descriptor: CBDescriptor, error: Error?) { + #if swift(>=5.5) + guard let characteristic = descriptor.characteristic else { return } + #else + let characteristic = descriptor.characteristic + #endif guard descriptor.uuid == X1Mouse.descriptorReportReference else { return } guard let value = descriptor.value as? NSData else { return } guard value.count == 2 else { return } /* report reference is 2 bytes long */ @@ -169,10 +174,10 @@ extension X1Mouse: CBPeripheralDelegate { switch reportId { case X1Mouse.xyReport, X1Mouse.wheelAndButtonsReport: - peripheral.setNotifyValue(true, for: descriptor.characteristic) + peripheral.setNotifyValue(true, for: characteristic) - if descriptor.characteristic.properties.contains(.notify) { - peripheral.setNotifyValue(true, for: descriptor.characteristic) + if characteristic.properties.contains(.notify) { + peripheral.setNotifyValue(true, for: characteristic) } default: From 6e842ae9d5a21916d7c9693c7385d1ac672bc4fa Mon Sep 17 00:00:00 2001 From: astromonkee Date: Fri, 24 Sep 2021 19:38:44 +0900 Subject: [PATCH 2/2] Fix deprecation warning with using `class` keyword --- Sources/X1Kit/X1Kit.swift | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Sources/X1Kit/X1Kit.swift b/Sources/X1Kit/X1Kit.swift index a994798..9ad0277 100644 --- a/Sources/X1Kit/X1Kit.swift +++ b/Sources/X1Kit/X1Kit.swift @@ -32,7 +32,7 @@ import CoreBluetooth case middle = 2 } -@objc protocol X1KitMouseDelegate: class { +@objc protocol X1KitMouseDelegate: AnyObject { func connectedStateDidChange(identifier: UUID, isConnected: Bool) func mouseDidMove(identifier: UUID, deltaX: Int16, deltaY: Int16) func mouseDown(identifier: UUID, button: X1MouseButton)