3

使用 MKLocalSearchCompleter 搜索地点并在选择 tableView 单元格时优化结果。When a MKLocalSearchCompletion is selected and MKLocalSearch.Request() is started, I get these Errors (example selects Los Angeles): According to my research this is a very rare problem?!

  • [SearchAttribution] 未找到 org.volunteermatch ...(+4 个其他域)的匹配属性源
  • 从 geod 加载标识符 org.volunteermatch 的属性信息时出错:错误域 = 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 模拟器

4

1 回答 1

0

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

在此处输入图像描述

于 2021-05-14T13:19:22.180 回答