У меня есть строка опций и вы хотите преобразовать ее в double.
это работало в Swift 2, но после преобразования в Swift 3, я получаю значение 0.
var dLati = 0.0
dLati = (latitude as NSString).doubleValue
У меня есть проверка и широта имеет необязательное строковое значение чего-то вроде -80.234543218675654, но значение dLati равно 0
*************** ОК, новое обновление для ясности *****************
У меня есть viewcontroller, в котором у меня есть кнопка, и когда кнопка будет затронута, она вызовет другой диспетчер представлений и передаст ему несколько значений
вот код для первого viewcontroller
var currentLatitude: String? = ""
var currentLongitude: String? = ""
var deviceName = ""
var address = ""
// somewhere in the code, currentLatitude and currentLongitude are get set
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
if segue.identifier == "map" {
let destViewController : MapViewController = segue.destination as! MapViewController
print(currentLongitude!) // Print display: Optional(-80.192279355363768)
print(currentLatitude!) // Print display: Optional(25.55692663937162)
destViewController.longitude = currentLongitude!
destViewController.latitude = currentLatitude!
destViewController.deviceName = deviceName
destViewController.address = address
}
}
Вот код для второго контроллера вида MapViewController
var longitude: String? = " "
var latitude: String? = ""
.
.
override func viewDidLoad() {
if let lat = latitude {
print(lat) // Print display: optiona(25.55692663937162)
dLati = (lat as NSString).doubleValue
print(dLati) // Print display: 0.0
}
.
.
}
Спасибо Борна