2016-10-28 43 views
0

假設您想將您的MapView集中在當前位置,然後在didUpdateLocation中編寫一些處理當前位置座標的代碼。何時獲取didUpdateLocation?

但是,如果您沒有在CLLocationManager對象上調用requestLocationstartUpdatingLocaion,該方法永遠不會被調用。那是對的嗎?

但無論您撥打requestLocationstartUpdatingLocation如果你看看你的MapView的藍點,顯示你的位置移動(例如你模擬運動),但didUpdateLocation不會得到自動調用。

我想了解爲什麼他們提出委託方法時,你必須自己調用它。

回答

1

您必須調用startUpdatingLocation ONCE,並且每次更改位置時都會調用didUpdateLocation委託方法。與你說的相比,這是非常不同的。

+0

是的,也許我不夠清楚。但我想說的是,didUpdateLocations總是需要一個開始。但是,儘管如此,在你的mapview中,你可以看到藍點正在移動(例如,如果你模擬移動)但是沒有調用UpdateLocations。我會更新我的問題。 – Codey

+1

嗯,無論如何,藍點正在移動,但它可以預期的行爲,點更新,但委託沒有被調用,因爲你沒有訂閱它但委託實施行爲是預期的我的想法。您必須致電開始接收更新。 – Daniel

+0

https://developer.apple.com/reference/corelocation/cllocationmanagerdelegate – Daniel