【问题标题】:Swift: HEREMaps geocoding sharedSdkEngineNotInstantiated error being thrownSwift:HEREMaps 地理编码 sharedSdkEngineNotInstantiated 错误被抛出
【发布时间】:2021-05-12 05:24:27
【问题描述】:

所以我正在使用 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])")
            }
        }
    }
}

【问题讨论】:

    标签: swift overriding geocoding init heremaps


    【解决方案1】:

    正如here 解释的那样,您应该手动实例化 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")
    }
    

    在实例化搜索引擎之前

    【讨论】:

      猜你喜欢
      • 2018-07-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多