是在最佳精度IOS一段時間採取從捕獲的位置,所以你需要避免這裏的位置是準確位置的代碼。
更新: 「因爲它可能需要幾秒鐘返回初始位置,外景經理通常立即提供在先緩存的位置數據,然後變得可用提供更先進的最新位置數據。因此。在採取任何行動之前檢查任何位置對象的時間戳總是一個好主意。「
參考:
https://developer.apple.com/reference/corelocation/cllocationmanager
注意:你可以改變的準確性,如iPod設備和ipad
//MARK: Location delgates
func locationManager(_ manager: CLLocationManager, didUpdateLocations locations: [CLLocation])
{
if locations.count > 0
{
let location = locations[locations.count-1]
let maxAge:TimeInterval = 60;
let requiredAccuracy:CLLocationAccuracy = 100;
let locationIsValid:Bool = Date().timeIntervalSince(location.timestamp) < maxAge && location.horizontalAccuracy <= requiredAccuracy;
if locationIsValid
{
NSLog(",,, location : %@",location);
NSLog("valid locations.....");
}
}
}
爲了實現這個答案,你可以從https://developer.apple.com/reference/corelocation添加此報價/ cllocationmanager「因爲返回初始位置可能需要幾秒鐘時間,位置管理器通常會立即傳遞先前緩存的位置數據,然後在可用時傳遞更新的位置數據。因此,總是一個好主意在採取任何行動之前檢查任何位置對象的時間戳。「 – Starlord
@Joakim謝謝你的評論我更新了答案。 –
你爲什麼這樣做?讓_ = locations.first – netshark1000