Swift3 如何将字符串转换为CLLocation?

Swift3 如何将字符串转换为CLLocation?,swift3,Swift3,字符串->[“位置:/-5.00m(速度-1.00mps/航向-1.00)@5/8/1710:26:50太平洋夏令时”] 要定位,您可以执行以下操作: import CoreLocation let String = "Location: < 37.78583400,-122.40641700> /- 5.00m (speed -1.00 mps / course -1.00) @ 5/8/17, 10:26:50 PM Pacific Daylight Time

字符串->[“位置:<37.78583400,-122.40641700>/-5.00m(速度-1.00mps/航向-1.00)@5/8/1710:26:50太平洋夏令时”]


要定位,您可以执行以下操作:

import CoreLocation
let String = "Location: < 37.78583400,-122.40641700> /- 5.00m (speed 
    -1.00 mps / course -1.00) @ 5/8/17, 10:26:50 PM Pacific Daylight 
    Time"

let latLongString = String.components(separatedBy: "< ")[1].components(separatedBy: ">")[0]

let lat = latLongString.components(separatedBy: ",")[0]
let long = latLongString.components(separatedBy: ",")[1]


if let latitude =  Double(lat), let longitude = Double(long) {
let coordinate:CLLocation = CLLocation(latitude: latitude, longitude: longitude)

}
导入核心位置
让String=“位置:<37.78583400,-122.40641700>/-5.00m(速度
-太平洋夏令时5/8/17,10:26:50,下午1:00(课程-1.00)
时间“
让latLongString=String.components(分隔符:“<”[1]。components(分隔符:“>”[0]
设lat=latlonString.components(以“,”分隔)[0]
设long=latLongString.components(以“,”分隔)[1]
如果让纬度=双(纬度),让经度=双(长){
let坐标:CLLocation=CLLocation(纬度:纬度,经度:经度)
}

您需要使用
NSScanner
或正则表达式提取尖括号之间的两个数值,创建
Double
s,然后将它们传递给
CLLocation
初始值设定项。顺便说一句:它看起来更像数组中的字符串。是的,它看起来像是您通过类似“Location:(Location)”的方式将
CLLocation
转换为字符串,并将其存储在数组中。考虑重新使用该代码并使用字典或其他东西来避免将位置转换为字符串并读取该字符串。或者告诉我们更多关于你的情况