【问题标题】:error values Optional(Error Domain=kCLErrorDomain Code=8 "(null)")错误值可选(错误域=kCLErrorDomain 代码=8“(空)”)
【发布时间】:2019-04-26 07:00:29
【问题描述】:

当用户键入该位置在 mapkit 中显示的位置时,我正在使用 mapkit 显示位置,用于搜索位置。使用自动填充位置实现了自定义搜索,一切正常。但是当我单击 tableview 中的某些位置名称时,它会显示

错误域=kCLErrorDomain Code=8 "(null)"。


]

        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 上显示位置

【问题讨论】:

    标签: ios swift mapkit


    【解决方案1】:

    看看这个答案, 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被识别

    【讨论】:

      猜你喜欢
      • 2016-01-26
      • 2015-12-09
      • 2016-07-23
      • 1970-01-01
      • 2015-06-01
      • 2014-03-04
      • 2013-07-18
      • 2015-01-03
      • 2017-07-09
      相关资源
      最近更新 更多