tableviewcontroller中的反向地理编码位置

时间:2016-12-29 00:54:04

标签: uitableview swift3 ios10 reversegeocodelocation

如何在每个tableview行单元格中反转地理编码位置?

我有一个表视图控制器,其中每个超级请求都以纬度和经度的形式出现。如何在tableviewcontroller中将每个坐标转换为实际地址?

cellForRowAt中的以下代码是:

override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {

    if self.rideRequests.count != 0 {

        let request = self.rideRequests[indexPath.row]

        if let cell = tableView.dequeueReusableCell(withIdentifier: "RequestsCell") as? RequestsCell {

            cell.configureCell(requests: request)


            return cell
        }
    }

    return RequestsCell()
}

我的车手应用程序(超级克隆)中的反向地理编码位置是:

func geoCode(location : CLLocation!) {
    /*  Only one reverse geocoding can be in progress at a time so we need to cancel existing
     one if we are getting location updates */

    geoCoder.cancelGeocode()
    geoCoder.reverseGeocodeLocation(location, completionHandler: { (data, error) -> Void in
        guard let placeMarks = data as [CLPlacemark]! else {
            return
        }
        let loc: CLPlacemark = placeMarks[0]
        let addressDict : [NSString: NSObject] = loc.addressDictionary as! [NSString: NSObject]
        let addrList = addressDict["FormattedAddressLines"] as! [String]
        let address = addrList.joined(separator: ", ")
        print(addrList)
        self.address.text = address
        self.previousAddress = address
    })
}

从其他文件配置单元格:

class RequestsCell: UITableViewCell {

@IBOutlet weak var longitudeLabel: UILabel!
@IBOutlet weak var latitudeLabel: UILabel!
@IBOutlet weak var usernameLabel: UILabel!

func configureCell(requests: Requests) {

    self.longitudeLabel.text = "\(requests.longitude)"
    self.latitudeLabel.text = "\(requests.latitude)"
    self.usernameLabel.text = "\(requests.usersname)"
}

} //类RequestsCell

1 个答案:

答案 0 :(得分:1)

你应该这样做:

func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell
{

}

方法