为什么在 Swift 的 UILabel 中尝试显示城市和州名称时得到 "exc bad access"?
Why do I get "exc bad access" when trying to display city and state name in a UILabel in Swift?
我不确定我做错了什么。我在下面有这段代码,我试图在 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
显然希望您向具有 coordinate
参数的 init
方法之一提供 CLLocationCoordinate2D
。例如:
let coordinate = CLLocationCoordinate2D(latitude: ..., longitude: ...)
let placemark = MKPlacemark(coordinate: coordinate)
可以想象 MKPlacemark
的作者从未想过有人会创建一个实际上并不代表某些坐标的地标。显然,如果 MKPlacemark
能更优雅地处理这个错误,那就太好了,但是,遗憾的是,事实并非如此。如果您愿意,您可以 report feedback to Apple 随意处理此行为。
我不确定我做错了什么。我在下面有这段代码,我试图在 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
显然希望您向具有 coordinate
参数的 init
方法之一提供 CLLocationCoordinate2D
。例如:
let coordinate = CLLocationCoordinate2D(latitude: ..., longitude: ...)
let placemark = MKPlacemark(coordinate: coordinate)
可以想象 MKPlacemark
的作者从未想过有人会创建一个实际上并不代表某些坐标的地标。显然,如果 MKPlacemark
能更优雅地处理这个错误,那就太好了,但是,遗憾的是,事实并非如此。如果您愿意,您可以 report feedback to Apple 随意处理此行为。