0

所以我正在使用 HERE iOS SDK。出于某种原因,try 块不起作用,我不断打印出错误,即“sharedSdkEngineNotInstantiated”。getCoordinates 函数是我在实例化后尝试测试的函数——我包含它是为了让你们不会猜测最终目标是什么。感谢您的任何帮助!

class functions: NSObject, ObservableObject {
    var searchEngine: SearchEngine?

    override init() {
        do {
            try searchEngine = SearchEngine()
        } catch let engineInstantiationError {
            print("Failed to make the search engine. The cause was \(engineInstantiationError)")
        }
    }

    func getCoordinates5(from address: String) {
        guard searchEngine != nil else {
            return
        }
        let searchOptions = SearchOptions(maxItems: 10)
    
        let query = TextQuery(address, near: GeoCoordinates(latitude: 40.7128, longitude: 74.0060))
        _ = searchEngine!.search(textQuery: query, options: searchOptions) { (searchError, searchResultItems) in
            guard searchResultItems != nil else {
                return
            }
            for index in 0..<searchResultItems!.count {
                let number = index + 1
                print("Location \(number): \(searchResultItems![index])")
            }
        }
    }
}
4

1 回答 1

0

正如这里所解释的,您应该手动实例化 sdk,因为可能在执行代码时您还没有加载任何地图(显示地图将自动实例化 sdk)。所以你只需要

  // We must explicitly initialize the HERE SDK if no MapView is present.
do {
    try SDKInitializer.initializeIfNecessary()
} catch {
    fatalError("Failed to initialize HERE SDK")
}

在实例化搜索引擎之前

于 2021-09-03T14:54:55.577 回答