당신은 쉽게 CLLocationManager
의 대리인이 원하는 정확도를 충족 위치 업데이트를받을 때 위치를 추적 중지 할 수 있습니다.
는 위치 업데이트를 시작 같은 것을 수행합니다
CLLocationManager *locationManager = [CLLocationManager alloc] init];
locationManager.delegate = self;
locationManager.desiredAccuracy = kCLLocationAccuracyNearestTenMeters;
[locationManager startUpdatingLocation];
그런 다음 적절한 CLLocationManagerDelegate
방법 구현 :
- (void)locationManager:(CLLocationManager *)manager didUpdateLocations:(NSArray *)locations
{
CLLocation *foundLocation = [locations lastObject];
if (foundLocation && foundLocation.horizontalAccuracy < kYourDesiredAccuracyInMetres)
{
[manager stopUpdatingLocation];
//Do whatever else with the location you've established
}
}
당신은의 정확성을 확인하여,이 요구 사항을 충족 조정할 수 있어야한다을 반환 된 위치가 반환되고 업데이트를 중지하거나 계속할 수 있습니다 (정확도가 더 필요한 경우).
위치 업데이트를 시작할 때 타이머를 설정하고 설정된 시간 내에 위치를 찾지 못하면 업데이트를 중지하는 것도 좋은 방법입니다. 또한 위치 서비스에 액세스 할 수 있는지 여부를 확인하려면 locationManager:didFailWithError:
대리자 메소드를 구현해야합니다.