gpt4 book ai didi

ios - 在 swift 3 中传递地址时在 map 中获取 "Cannot provide direction"?

转载 作者:行者123 更新时间:2023-11-28 14:31:20 25 4
gpt4 key购买 nike

当用户单击表格 View 单元格时,当有打开 map 的地址时,我需要一些帮助。不幸的是,当用户单击“无法提供方向”的地址表格 View 单元格时,我收到错误从和到同一方向”。所以,下面是我的代码。

这是我的代码:

    func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
var cellId = infoCellId
if indexPath.section != 0 {
cellId = interactiveCellId
}

let cell: UITableViewCell = self.tableView.dequeueReusableCell(withIdentifier: cellId)! as UITableViewCell
var key = "Not Available"
var value = "Not Available"

if indexPath.section == 0 {
if indexPath.row == 0 {
key = "Name"
if self.place.placeName.characters.count > 0 {
value = self.place.placeName
}
} else if indexPath.row == 1 {
key = "Address"
if let address = self.place.address {
if address.characters.count > 0 {
value = address

}
}

} else if indexPath.row == 2 {
key = "Phone number"


if let phoneNumber = self.place.phoneNumber {

if phoneNumber.characters.count > 0 {
value = phoneNumber
}
}

} else if indexPath.row == 3 {
key = "Website"
if let website = self.place.website {
if website.characters.count > 0 {
value = website
}
}
}
}


else if indexPath.section == 2 {
key = "Get Directions"
} else {
key = "Photos of \(self.place.placeName)"
}

if indexPath.section == 0 {
cell.textLabel?.text = key
cell.detailTextLabel?.text = value
} else {
cell.textLabel?.text = key



}

return cell
}


// ---- didSelectRowAt Happpening here -----

func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {

if indexPath.section == 0 {

if indexPath.row == 1 {
print("it works!")

if let location = place.location {
if let url = URL(string:"http://maps.apple.com/maps?daddr=\(location.coordinate.longitude),\(location.coordinate.latitude)") {
UIApplication.shared.open(url, options: [:], completionHandler: nil)
}
}
}

if indexPath.row == 2 {



guard let phoneNumber = self.place.phoneNumber,
phoneNumber.count > 0,



let url = URL(string: "tel:\(phoneNumber.addingPercentEncoding(withAllowedCharacters: .urlPathAllowed)!)")



else { return }

if UIApplication.shared.canOpenURL(url) {
UIApplication.shared.open(url, options: [:], completionHandler: nil)


}

} else { return }

}

最佳答案

您为导航的起点和终点指定了相同的位置,因此会出现错误消息。

如果您想提供从用户当前位置出发的路线,您只需提供目的地即可。

此外,您还调换了 URL 中的纬度和经度值。

最后,您使用带有可选值的字符串插值,因此您将获得的 url 类似于 http://maps.apple.com/maps?daddr=(optional)x,(optional) y

你应该先打开place.location

if let coordinate = place.location?.coordinate {
if let url = URL(string:"http://maps.apple.com/maps?daddr=\(coordinate.longitude),\(coordinate.latitude)") {
UIApplication.shared.open(url, options: [:], completionHandler: nil)
}
}

关于ios - 在 swift 3 中传递地址时在 map 中获取 "Cannot provide direction"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51227829/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com