MKLocalSearch 产生 SearchAttribution Error 和 Error Domain=GEOErrorDomain Code=-8

问题描述

我使用 MKLocalSearchCompleter 搜索地点,并在选择 tableView 单元格时优化结果。选择MKLocalsearchCompletion并启动MKLocalSearch.Request()时,我得到这些错误(例如选择洛杉矶): 根据我的研究,这是一个非常罕见的问题?!​​

  • [SearchAttribution] 没有找到匹配的归因来源 org.volunteermatch ...(+4 个其他域)
  • 加载标识符 org.volunteermatch 的归属信息时出错 geod:错误域=GEOErrorDomain 代码=-8“没有匹配的属性 为 org.volunteermatch 找到源” UserInfo={NSDebugDescription=没有找到匹配的归因源 org.volunteermatch} ...(+4 个其他域)

这些是 TableViewController 中的实例变量:

var searchCompleter = MKLocalSearchCompleter()
var searchResults = [MKLocalSearchCompletion]()

每次更改搜索词时都会运行此代码

searchCompleter.queryFragment = text
searchCompleter.resultTypes = .address
searchCompleter.region = region

在 tableView ... didSelectRowAt ... 中执行此代码

let selectedItem = searchResults[indexPath.row]
        
let searchRequest = MKLocalSearch.Request()
searchRequest.naturalLanguageQuery = selectedItem.title
searchRequest.resultTypes = .address
        
let search = MKLocalSearch(request: searchRequest)
search.start { (response,error) in
            
      guard let coordinate = response?.mapItems[0].placemark.coordinate else {
          return
      }
      // send to mainVC
     self.delegate?.userSelectedplace(coordinate: coordinate)
}

Xcode 12.4、iOS 14.4 模拟器

解决方法

当我尝试将搜索结果加载到表格视图中时,我遇到了类似的错误。然后我发现我的表视图的数据源和委托丢失了。因此,请确保您的 tableview 的委托和数据源出口指向正确的文件所有者。

enter image description here