2016-07-30 50 views
-1

我有一個核心位置管理器設置。有時,當手機處於3G/4G信號狀態時,它會報告功能中的LocationUnknown錯誤。 Apple的文檔說:如何處理「位置未知」

如果位置服務無法立即檢索位置,它會報告kCLErrorLocationUnknown錯誤並繼續嘗試。在這種情況下,您可以簡單地忽略錯誤並等待新事件。

因此,我認爲位置管理器仍然試圖在這一點上獲取位置?

現在,當我使用iPhone模擬器並故意給它沒有位置時,它也會返回這個LocationUnknown錯誤。我怎麼知道這個位置肯定不能被檢索到,而不是忽略這個錯誤?

回答

0

正如文件告訴你,你必須不斷嘗試。其實,位置經理會爲你做這個。你要求它開始更新位置,它只是不斷髮送你的位置,其中第一個或第二個將總是是「未知」。但通常情況下,隨着傳感器的熱身,您將開始獲得更好更好的位置信息。通常情況下,你會看到時間,所以如果你不斷收到不好的地點,你可以在經過一段時間後才能超時。

+0

啊,我明白了。那麼你覺得合適的時間多久?我期待的位置精確到400米。 – Tometoyou

+0

這是你的應用程序;你決定超時。我的例子是在這裏:https://github.com/mattneub/Programming-iOS-Book-Examples/blob/master/bk2ch22p773location/ch35p1032location/ViewController.swift但超時只是一個常數(所以是所需的準確性)和你可以自由插入你認爲合適的任何值。 – matt