因此,我有以下函数来设置我的应用程序的地图区域:
func mapRegion() -> MKCoordinateRegion {
databaseHandle = databaseRef.child("RunList").child(runName).observe(.value, with: { (snapshot) in
let runData = snapshot.value as? [String: AnyObject]
self.minLat = runData?["startLat"] as? Double
self.minLng = runData?["startLong"] as? Double
self.maxLat = runData?["endLat"] as? Double
self.maxLng = runData?["endLong"] as? Double
print("testing")
print(self.minLat!)
print(self.maxLng!)
self.coordinate = MKCoordinateRegion(
center: CLLocationCoordinate2D(latitude: (self.minLat! + self.maxLat!)/2,
longitude: (self.minLng! + self.maxLng!)/2),
span: MKCoordinateSpan(latitudeDelta: (self.maxLat! - self.minLat!)*1.1,
longitudeDelta: (self.maxLng! - self.minLng!)*1.1))
})
return coordinate
}我在类的顶部初始化了以下变量:
var minLat: Double!
var minLng: Double!
var maxLat: Double!
var maxLng: Double!
var coordinate: MKCoordinateRegion!并且我尝试将map区域设置如下:
override func viewDidLoad() {
super.viewDidLoad()
configureView()
mapView.region = mapRegion()
}我得到的错误是在mapRegion()中我在包含databaseHandle的代码块下设置坐标区域的代码行。当代码运行时,我在'return code‘行下面得到以下错误:
fatal error: unexpectedly found nil while unwrapping an Optional value据我所知,发生这种情况是因为'coordinate‘没有值并且是可选的。为什么即使我使用全局变量设置坐标,它也没有值?我觉得我错过了一些如此简单的东西!
谢谢
https://stackoverflow.com/questions/44471463
复制相似问题