6

我正在开发一个 iPhone 应用程序,它是一个位置感知应用程序。目前该应用程序运行良好,除了先前位置的缓存。我第一次启动应用程序位置管理器时会获取当前位置,然后根据当前位置显示附近的事物。

但从下一次开始,它使用以前获取的位置,直到我重新启动手机,它才会获取相同的位置。所以到目前为止,我很清楚位置管理器缓存了位置。

所以我的问题是如何删除此缓存并强制位置管理器获取新位置谢谢

4

1 回答 1

9

实际上,我认为您不能:由您(在您的CLLocationManagerDelegate实例中)根据时间戳过滤您收到的位置(以确保您处理的位置是最近的位置,而不是缓存的位置)。

-(void)locationManager:(CLLocationManager *)manager didUpdateToLocation:(CLLocation *)newLocation fromLocation:(CLLocation *)oldLocation{ NSDate *eventDate = newLocation.timestamp; NSTimeInterval howRecent = [eventDate timeIntervalSinceNow]; //Is the event recent and accurate enough ? if (abs(howRecent) < SECS_OLD_MAX) { //WORK WITH IT ! } .... ....

于 2010-02-01T11:02:57.970 回答