【发布时间】:2018-08-04 14:59:01
【问题描述】:
我从 Firebase 获取纬度和经度值,并将其作为字符串存储到 aLatitudeArray 和 aLongitudeArray 中。这部分效果很好,随着 Firebase 中子项的更改,数组会被填充。然后我想从早期的数组中重建一个 CLLocation2D 数组,但是当我将值分配给一个变量时,它得到 nil。我的功能是:
func drawAlerts() { // to rewrite based on aLatituteArray and aLongitudeArray generated from firebase incoming data
var alertDrawArrayPosition = 0
while alertDrawArrayPosition != (alertNotificationArray.count - 1) {
var firebaseAlertLatidute = aLatitudeArray[alertDrawArrayPosition] // get String from alertLaitudeArray
let stringedLatitude: Double = (firebaseAlertLatidute as NSString).doubleValue // converts it to Double
var firebaseAlertLongitude = aLongitudeArray[alertDrawArrayPosition] // get string from alertLongitudeAray
let stringeLongitude: Double = (firebaseAlertLongitude as NSString).doubleValue //converts it to Double
var recombinedCoordinate: CLLocationCoordinate2D!
//
recombinedCoordinate.latitude = stringedLatitude // Thread 1: Fatal error: Unexpectedly found nil while unwrapping an Optional value
recombinedCoordinate.longitude = stringeLongitude // Thread 1: Fatal error: Unexpectedly found nil while unwrapping an Optional value
// alertNotificationArray.append(recombinedCoordinate!) // Build alertNotificationArray
alertDrawArrayPosition = ( alertDrawArrayPosition + 1 )
}
}
我阅读了很多帖子,但没有建议的解决方案有效。
运行时的值为:
firebaseAlertLatidute 字符串“37.33233141”
stringedLatitude Double 37.332331410000002(转换后额外增加0000002)
firebaseAlertLongitude 字符串“-122.0312186”
stringeLongitude Double -122.0312186
recombinedCoordinate CLLocationCoordinate2D?无(这是来自错误行)。
从控制台我得到这个打印:
fir aLongitudeArray ["-122.0312186"]
fir aLatitudeArray ["37.33233141"]
为什么不赋值?
【问题讨论】:
标签: ios arrays swift cllocation