CLLocationManager -startUpdatingLocation을 중지 할 때 조언을 요청하고 싶습니다.CLLocationManager를 중지 하시겠습니까?
[locationManager startUpdatingLocation];
[self performSelector:@selector(stopUpdatingLocation:) withObject:@"TimedOut" afterDelay:30];
- 잠재적으로 항상 배터리 수명을 낭비 : 현재 나는 두 가지 방법을 고려하고,하지만 난 사용하고 다른 사람들이 어떻게 아이디어를 얻을하고자하는 확실치 :
Method_001 30 초 동안 실행됩니다.
- 네트워크가 느리면 시간이 정확한 위치를 얻지 못할 수도 있습니다.
- 시간 초과를 구현하는 데는 깔끔한 방법이 있습니다.
Method_002 : 그런 다음 내부
[locationManager startUpdatingLocation];
: -locationManager:didUpdateToLocation:fromLocation:
추가 :
static int timeOut = 0;
timeOut++;
// Other code that checks for and stops
// when a suitable result, accuracy, age etc is found.
if(timeOut >= 4) {
[[self locationManager] stopUpdatingLocation];
timeOut = 0;
return;
}
- 4 (이하) 시도에 정확한 위치를 해결하지 않을 수 있습니다.
- CLLocationManager에 대해 4 개의 결과가 반환되지 않을 수 있으며 시간 제한이 적용되지 않을 수 있습니다.
- 좋은 결과를 얻으면 즉시 배터리 수명이 단축됩니다.
그냥 궁금한가요?
그게 내가 생각하고 있었는지, 현재 나는 method_002를 사용하고 있지만 때로는 델리게이트에 대한 4 번째 호출이 없다는 것을 알아 차렸다. 이것은 첫 번째 반환이 특히 정확한 경우에 발생하는 것으로 보입니다. 마찬가지로 3을 타임 아웃으로 설정하면 특히 어려운 상황 (잘못된 셀 범위)이 사용 가능한 위치로 정확하게 분석되지 않습니다. – fuzzygoat