Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/xcode/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
未激发Swift LocalSearchCompleter_Swift_Xcode_Mapkit_Swiftui_Swift5 - Fatal编程技术网

未激发Swift LocalSearchCompleter

未激发Swift LocalSearchCompleter,swift,xcode,mapkit,swiftui,swift5,Swift,Xcode,Mapkit,Swiftui,Swift5,我有一个符合MKLocalSearchCompleterDelegate的类。我还实现了completerDidUpdateResults。我使用的是SwiftUI,所以这里没有视图控制器。我正试图将整个逻辑用于服务 当我尝试调用completer.queryFragment=“be”时,什么都没有发生 这是我的密码: import Foundation import MapKit class LocalSearchCompleterService: NSObject, MKLocalSear

我有一个符合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()
控制台中没有发生任何事情


我缺少什么?

在哪里初始化服务?当我调用方法时:
LocalSearchCompleterService().autocomplete()
谢谢。没关系,我只需要执行var localSearchCompleterService=localSearchCompleterService(),然后执行.autocomplete(),但是。。。为什么我的意思是它不一样呢?它是从委托请求的吗?如果不是,你应该调用它,否则它不会自动触发。否则,存储服务的位置会出现问题