我不确定我做错了什么。我在下面的代码中尝试在 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/