2

在学习 iOS 开发的过程中,我目前正在学习如何使用核心位置框架。

我被告知我们需要创建一个实例CLLocationManager,然后设置一个委托,然后实现这个方法:

-(void) locationManager: (CLLocationManager*)manager
    didUpdateToLocation: (CLLocation*)newLocation
           fromLocation: (CLLocation*)oldLocation

这本书没有彻底解释该位置是如何实际接收的。据我了解,每当 locationManager 记录一个新位置时,它就会发送一条消息(给委托人?),选择器是上述方法,用位置数据填充参数?然后我们必须实现这个方法并选择如何处理这些参数。

它是否正确?如果没有,有人可以向我解释到底发生了什么吗?

在此先感谢,这让我很困惑。

4

1 回答 1

2

是的,虽然从 iOS 6 开始你应该实现的消息是-locationManager:didUpdateLocations:. 设置好委托后,只要位置发生变化,呼叫-startUpdatingLocation和位置管理器就会开始发送-locationManager:didUpdateLocations:(或其他方法),直到您告诉它停止。您对该方法的实现可以做任何您喜欢的事情——更新地图上的位置,将位置记录到文件中,查找最近的加油站......您要求更新位置以及任何其他原因是有原因的原因是,这可以让你做到这一点。

于 2013-05-30T03:50:27.713 回答