diff --git a/ControlRoom/Controllers/LocalSearchController.swift b/ControlRoom/Controllers/LocalSearchController.swift index d00dac5..2bffa65 100644 --- a/ControlRoom/Controllers/LocalSearchController.swift +++ b/ControlRoom/Controllers/LocalSearchController.swift @@ -115,16 +115,17 @@ class LocalSearchController: NSObject, ObservableObject { /// Adds `MKLocalSearchCompleterDelegate` conformance so the controller can use the delegate's callback methods extension LocalSearchController: MKLocalSearchCompleterDelegate { /// Called if `MKLocalSearchCompleter` return valid results from a query string - func completerDidUpdateResults(_ completer: MKLocalSearchCompleter) { - guard let callback else { return } + nonisolated func completerDidUpdateResults(_ completer: MKLocalSearchCompleter) { let results = completer.results.map { - LocalSearchResult( result: $0 ) + LocalSearchResult(result: $0) + } + Task { @MainActor [weak self] in + self?.callback?(results) } - callback(results) } /// Called if `MKLocalSearchCompleter` encounters an error - func completer(_ completer: MKLocalSearchCompleter, didFailWithError error: Error) { + nonisolated func completer(_ completer: MKLocalSearchCompleter, didFailWithError error: Error) { print(error) } } diff --git a/ControlRoom/Extensions/CLLocationCoordinate2D-Identifiable.swift b/ControlRoom/Extensions/CLLocationCoordinate2D-Identifiable.swift index 4e18f7f..5c213e2 100644 --- a/ControlRoom/Extensions/CLLocationCoordinate2D-Identifiable.swift +++ b/ControlRoom/Extensions/CLLocationCoordinate2D-Identifiable.swift @@ -9,8 +9,16 @@ import CoreLocation import Foundation +#if swift(>=5.10) +extension CLLocationCoordinate2D: @retroactive Identifiable { + public var id: String { + "\(latitude)-\(longitude)" + } +} +#else extension CLLocationCoordinate2D: Identifiable { public var id: String { "\(latitude)-\(longitude)" } } +#endif \ No newline at end of file