我正在开发一个 iPhone 应用程序,它是一个位置感知应用程序。目前该应用程序运行良好,除了先前位置的缓存。我第一次启动应用程序位置管理器时会获取当前位置,然后根据当前位置显示附近的事物。
但从下一次开始,它使用以前获取的位置,直到我重新启动手机,它才会获取相同的位置。所以到目前为止,我很清楚位置管理器缓存了位置。
所以我的问题是如何删除此缓存并强制位置管理器获取新位置谢谢
我正在开发一个 iPhone 应用程序,它是一个位置感知应用程序。目前该应用程序运行良好,除了先前位置的缓存。我第一次启动应用程序位置管理器时会获取当前位置,然后根据当前位置显示附近的事物。
但从下一次开始,它使用以前获取的位置,直到我重新启动手机,它才会获取相同的位置。所以到目前为止,我很清楚位置管理器缓存了位置。
所以我的问题是如何删除此缓存并强制位置管理器获取新位置谢谢
实际上,我认为您不能:由您(在您的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 ! } .... ....