2016-10-28 22 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