2017-05-09 88 views
1

字符串 - > [ 「地點:< 37.78583400,-122.40641700>/- 5.00米(速度-1.00 MPS /當然-1.00)@ 17年5月8日,下午10點26分50秒太平洋夏令時」]如何將字符串轉換爲CLLocation?

到CLLocation

+0

你需要提取與'NSScanner'或正則表達式的尖括號之間的兩個數值,創建'Double's然後將它們傳遞到'CLLocation'初始值設定項。順便說一句:它看起來更像是一個數組中的字符串。 – vadian

+0

是的,它看起來像你轉換'CLLocation'串通過類似「地點:\(位置)」,並存儲在此在數組中。考慮重新訪問該代碼並使用Dictionary或其他名稱來避免將位置轉換爲字符串並將該字符串讀回。或者告訴我們更多關於你的情況 – dymv

回答

2

你可以做這樣的事情:

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) 

}