当用户键入在mapkit中显示的位置时,我正在使用mapkit来显示位置(用于搜索位置)。实施带有自动填充位置的自定义搜索,所有功能都可以正常运行。但是当我单击tableview中的某些位置名称时,它显示
错误域= kCLErrorDomain代码= 8“(空)”。
var searchCompleter = MKLocalSearchCompleter()
var searchResults = [MKLocalSearchCompletion]()
func completerDidUpdateResults(_ completer: MKLocalSearchCompleter) {
searchResults = completer.results
for searchresult in searchResults {
print("titlevalues",searchresult.title)
}
if (searchResults.count != 0) {
self.searchTableView.isHidden = false
} else {
self.searchTableView.isHidden = true
}
self.searchTableView.reloadData()
}
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell: SelectLocationTableCell = tableView.dequeueReusableCell(withIdentifier: "SelectLocationTableCell") as! SelectLocationTableCell
let searchresult = searchResults[indexPath.row]
cell.titleLabel.text = searchresult.title
cell.descriptionLabel.text = searchresult.subtitle
return cell
}
func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
let searchresult = searchResults[indexPath.row]
self.setSelectMarkinAction(searchResult: searchresult)
self.searchTableView.isHidden = false
self.doneButton.isHidden = false
}
func getCoordinate( addressString : String,
completionHandler: @escaping(CLLocationCoordinate2D, NSError?) -> Void ) {
let geocoder = CLGeocoder()
geocoder.geocodeAddressString(addressString) { (placemarks, error) in
if error == nil {
if let placemark = placemarks?[0] {
let location = placemark.location!
completionHandler(location.coordinate, nil)
return
}
}
completionHandler(kCLLocationCoordinate2DInvalid, error as NSError?)
}
}
func setSelectMarkinAction(searchResult: MKLocalSearchCompletion) {
print("location address tile",searchResult.title)
getCoordinate(addressString: searchResult.title) { (location, error) in
if (error == nil) {
self.setMarkLocationInMap(searchResult: searchResult, location: location)
print("locationdata",location)
} else {
print("error values",error as Any)
}
}
}
This error am getting some of locations
location address tile Reva University
error values Optional(Error Domain=kCLErrorDomain Code=8 "(null)")
当我选择任何位置时,我必须在mapkit上显示位置
答案 0 :(得分:0)
看看这个答案, kCLErrorDomain Code=8 "The operation couldn’t be completed.
有时,地址中的某些元素确实涉及建筑物中位置的精度,这会干扰没有该精度的实际位置的匹配。
例如:
13 BOULEVARD DE LA LIBERTE, 35000 RENNES, FR
未被识别
并导致code=8
错误,但是如果使用France
而不是FR
,则会获得预期的结果。
13 BOULEVARD DE LA LIBERTE, 35000 RENNES, France
被识别