swift - 尝试在 Swift 的 UILabel 中显示城市和州名称时,为什么会得到 "exc bad access"?

标签 swift mapkit

我不确定我做错了什么。我在下面的代码中尝试在 UILabel 中显示城市和州名。 Xcode 在到达 if let city = selectedPin!.locality 行时一直崩溃。为什么会这样?

var selectedPin:MKPlacemark? = nil

@objc func saveNameToLabel(){

    let placemark = MKPlacemark()
    selectedPin = placemark

    if let city = selectedPin!.locality, //Here is where I get the Error Access
        let state = selectedPin!.administrativeArea {

        labelForCityAndState.text = "\(city) \(state)"
        print("display city and state in label")
    }
}

最佳答案

您收到此错误是因为 MKPlacemark 显然希望您向具有 init 方法之一提供 CLLocationCoordinate2D坐标参数。例如:

let coordinate = CLLocationCoordinate2D(latitude: ..., longitude: ...)
let placemark = MKPlacemark(coordinate: coordinate)

可以想象,MKPlacemark 的作者从未想过有人会创建一个实际上并不代表某个坐标的地标。显然,如果 MKPlacemark 能更优雅地处理此错误,那就太好了,但是,遗憾的是,事实并非如此。你应该随时report feedback to Apple在这种行为上,如果你愿意的话。

关于swift - 尝试在 Swift 的 UILabel 中显示城市和州名称时,为什么会得到 "exc bad access"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58396820/

相关文章:

ios - 如何确定导航 route 的下一个兴趣点?

ios - 异步更新表格单元格图像

ios - 检查字典中的对象是否为 Int (Swift)

swift - TableViewController 仅显示一个动态部分

ios - 将参数从 pin 传递到其他 View

iPhone - MapKit - 搜索位置和移动注释

swift - 境界 0.99 Swift 让境界 = 试试! Realm ()

swift - UITableView 内容 View 的宽度与容器不匹配

iphone - 用图像覆盖 MKMapView

objective-c - iOS MapKit用户位置标注之Z-index