作者热门文章
- r - 以节省内存的方式增长 data.frame
- ruby-on-rails - ruby/ruby on rails 内存泄漏检测
- android - 无法解析导入android.support.v7.app
- UNIX 域套接字与共享内存(映射文件)
我有一个选项字符串,想将其转换为 double 。
这在 Swift 2 中有效,但自从转换为 Swift 3 后,我得到的值为 0。
var dLati = 0.0
dLati = (latitude as NSString).doubleValue
我检查过,latitude 有一个可选的字符串值,例如 -80.234543218675654,但 dLati 值为 0
*************** 好的,为清楚起见,新更新 ******************
我有一个 View Controller ,里面有一个按钮,当触摸按钮时,它会调用另一个 View Controller 并向它传递一些值这是第一个 View Controller 的代码
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 的第二个 View Controller 的代码
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
}
.
.
}
谢谢博尔纳
最佳答案
无需使用 Foundation 类型即可安全实现此目的的方法是使用 Double 的初始化器:
if let lat = latitude, let doubleLat = Double(lat) {
print(doubleLat) // doubleLat is of type Double now
}
关于ios - 在 Swift 3 中将可选字符串转换为 double ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40372656/
我正在尝试用 Swift 编写这段 JavaScript 代码:k_combinations 到目前为止,我在 Swift 中有这个: import Foundation import Cocoa e
我是一名优秀的程序员,十分优秀!