首页 > 解决方案 > Swift LocalSearchCompleter 没有被解雇

问题描述

我有这个符合 MKLocalSearchCompleterDelegate 的类。我也实施了completerDidUpdateResults。我正在使用 SwiftUI,所以这里没有视图控制器。我试图将整个逻辑放在服务中。

当我尝试打电话时,completer.queryFragment = "be"什么也没有发生。

这是我的代码:

import Foundation
import MapKit

class LocalSearchCompleterService: NSObject, MKLocalSearchCompleterDelegate {
    let completer: MKLocalSearchCompleter = MKLocalSearchCompleter()

    override init() {
        super.init()
        completer.delegate = self
        let center = CLLocationCoordinate2D(latitude: 47.5596, longitude: 7.5886)
        completer.region = MKCoordinateRegion(center: center, latitudinalMeters: 10000, longitudinalMeters: 10000)
    }

    func completerDidUpdateResults(_ completer: MKLocalSearchCompleter) {
        print("called")
        let addresses = completer.results.map { result in
            result.title + ", " + result.subtitle
        }

        print(addresses)
    }

    func autocomplete() {
        completer.queryFragment = "be"
    }

}

然后我从外面调用它:LocalSearchCompleterService().autocomplete() 控制台中没有任何反应

我错过了什么?

标签: swiftxcodemapkitswiftuiswift5

解决方案


推荐阅读