我的textFields包含纬度和经度,我必须始终在小数点键盘上使用点号“。”而不是逗号“,”,因为如果用户的iPhone的区域不是美国或小数键盘上的例如乌克兰,则我的逗号为“,”,并且我的应用程序崩溃了。如何实现NumberFormatter始终使用点“。”
将表格textField文本DMM坐标转换为DM的快速文件
import Foundation
import MapKit
func DMMtoDD(latDeg: Double, latMin: Double, latDir: String?, longDeg: Double, longMin: Double, longDir: String?) -> CLLocationCoordinate2D {
var latitude = CLLocationDegrees()
if latDeg > 0 {
latitude = CLLocationDegrees(latDeg + ((latMin*60)/3600))
if latDir == "S" {latitude *= -1}
}
else{
latitude = CLLocationDegrees((latDeg * -1) + ((latMin*60)/3600))
latitude *= -1
}
var longitude = CLLocationDegrees()
if longDeg > 0 {
longitude = CLLocationDegrees(longDeg + ((longMin*60)/3600))
if longDir == "W" {longitude *= -1}
}
else{
longitude = CLLocationDegrees((longDeg * -1) + ((longMin*60)/3600))
longitude *= -1
}
return CLLocationCoordinate2D(latitude: latitude, longitude: longitude)
}
ViewController
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
let resultsVC = segue.destination as! ResultsViewController
let coord = DMMtoDD(latDeg: Double(latDegTextField.text!)!, latMin: Double(latMinutesTextField.text!)!, latDir: String(latPTextField.text!), longDeg: Double(longDegTextField.text!)!, longMin: Double(longMinutesTextField.text!)!, longDir: String(longPTextField.text!))
}
//我如何在代码中使用坐标
let G16 = (tghaSun + coord.longitude).truncatingRemainder(dividingBy: 360.0)
我猜您正在这样解析用户输入的内容: