搜索地点是我们在应用程序中可能需要的一个有趣的功能。让我们用 SwiftUI 开发这个功能。
首先,让我们创建一个视图模型,其中包含一个确认 Observable 对象的类。此类具有发布搜索结果的 searchResults 变量。LocationManager 向“MKLocalSearchCompleterDelegate”确认,后者通过“completerDidUpdateResults”提供搜索结果。
class LocationManager: NSObject, ObservableObject, CLLocationManagerDelegate, MKLocalSearchCompleterDelegate {
let manager = CLLocationManager()
@Published var region: MKCoordinateRegion
@Published var location: CLLocationCoordinate2D?
@Published var name: String = ""
@Published var search: String = ""
@Published var searchResults = [MKLocalSearchCompletion]()
var publisher: AnyCancellable?
var searchCompleter = MKLocalSearchCompleter()
override init() {
let latitude = 0
let longitude = 0
self.region = MKCoordinateRegion(center:CLLocationCoordinate2D(latitude: