所以我使用的是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])")
}
}
}
}发布于 2021-09-03 14:54:56
正如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")
}在实例化SearchEngine之前
https://stackoverflow.com/questions/66104443
复制相似问题