Aviv Paz
Aviv Paz

Reputation: 1125

Ios location update keep getting to the didUpdateLocations

I need once the app is launch, to check the location and send it to the server. After it, i need to check the location every kilometer.

So when i started the location update, i set the distanceFilter to none and on the first location receive, i changed it to 1 kilometer.

  //If the location update is denied
    if ([CLLocationManager authorizationStatus]==kCLAuthorizationStatusDenied)
        [ self locationUpdateDenied:basicViewController];
    else if ([CLLocationManager locationServicesEnabled]) {
        _locationManager.desiredAccuracy = kCLLocationAccuracyBest;
        _locationManager.distanceFilter=kCLDistanceFilterNone;

        //In ViewDidLoad
        if([self.locationManager respondsToSelector:@selector(requestWhenInUseAuthorization)]) {
            [self.locationManager requestWhenInUseAuthorization];
        }
        [_locationManager startUpdatingLocation];
    }

The first location receive:

- (void)locationManager:(CLLocationManager *)manager didUpdateLocations:(NSArray *)locations
{

    if (locations>0) {
        [_locationManager setDistanceFilter:1000.0f];

        CLLocation *location = [locations objectAtIndex:0];
        [User sharedInstance].latitude=location.coordinate.latitude;
        [User sharedInstance].longitude=location.coordinate.longitude;
      /*  if (!_delegate) {
            [_delegate userLocationUpdated];
        }*/
    }
}

the problem it keeps checking the location. The location isn't changing but it still gets to the didUpdateLocations. It like the distanceFilter isn't changing.

should i need to stop the location update and reactive it with the kilometer distanceFilter?

Upvotes: 0

Views: 231

Answers (1)

codencandy
codencandy

Reputation: 1721

From the documentation i presume that you can set the distanceFilter property before you start the location service since you will be called immediatley after you start the service with startUpdatingLocation with a first location.

[manager setDistanceFilter:1000.0];
[manager startUpdatingLocation]; // will call didUpdateLocations immediatley
                                 // with the current location

Upvotes: 1

Related Questions