我使用CLLoction管理器来获取location.but什么时候我开始我的位置然后它给我oldlocation先前存储在设备中。我想在首次启动应用程序时使用newlocation重置此i used flag的位置调用stopupdateinglocation和startupdatinglocation方法。但是oldlocation没有改变它显示旧位置。
答案 0 :(得分:6)
每个CLLocation
都有一个timestamp
属性,您可以使用该属性过滤所有过于陈旧的位置更新。
- (void)locationManager:(CLLocationManager *)manager didUpdateToLocation:(CLLocation *)newLocation fromLocation:(CLLocation *)oldLocation
{
NSTimeInterval age = [newLocation.timestamp timeIntervalSinceNow];
if(age < SOME_CONSTANT_IN_SECONDS)
{
//Use location
}
}
答案 1 :(得分:0)
您无法清除旧位置,但您可以检查horizontalAccuracy以了解这是一个好的位置(当前)还是旧的和不相关的。