我正在开发一款支持位置感知应用的iPhone应用。 Currentlly应用程序正常工作,除了以前位置的缓存。 我第一次启动应用程序位置管理器获取当前位置,然后根据当前位置显示附近的内容。
但从下一次它使用以前获取的位置,直到我重新启动手机它将获取相同的位置。所以到目前为止,我很清楚位置管理器会缓存该位置。
所以我的问题是如何删除此缓存并强制位置管理器获取新位置 感谢
答案 0 :(得分:7)
实际上我认为你不能:由你(在你的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 ! } .... ....