2010-04-18 2 views
5

저는 위치 기반 iPhone 응용 프로그램의 성능을 최적화하기위한 방법을 찾기 위해 노력해 왔으며 일부 사람들은 CLLocationManager를 시작하고 중지하여 위치 업데이트를 강제 할 수 있다고 언급했습니다. 내가 얻을 수있는 최상의 정확성이 필요하고 내 경우 사용자가 걸어 다니는 것처럼 몇 초마다 (예 : 10 초) 업데이트를보고 싶어합니다. 나는 필터를 적절히 설정했지만, 때로는 꽤 오랫동안 장치에 대한 업데이트를 얻지 못한다는 것을 알게되었습니다.강제로 CLLocationManager 업데이트 - 도움이 되었습니까?

고정 된 시간 간격 (20 초 사용)이 지나면 강제로 업데이트되는 다음 방법을 테스트하고 있습니다. 내 직감이 정말 내게 사용자에게 더 정확한 업데이 트를 제공하는 데 도움이되지 않을 것이라고 말하고, CLLocationManager를 항상 떠나는 것은 아마도 최선의 접근 방법 일 것입니다.

- (void)forceLocationUpdate { 
    [[LocationManager locationManager] stopUpdates]; 
    [[LocationManager locationManager] startUpdates]; 
    [self performSelector:@selector(forceLocationUpdate) withObject:nil afterDelay:20.0]; 
} 

내 질문은 CLLocationManager의 강제 업데이트가 실제로 코어 위치 성능을 개선합니까? 그것은 성능에 해 롭습니까? 내가 좋은 GPS 수신 기능을 갖춘 열린 공간에 있다면, 그러면 도움이 될까요? 누구든지 이것을 시도해 본 경험이 있습니까? 사전에

감사합니다, 스티브

+0

CLLocationManager를 설정할 때'desiredAccuracy' 기준을 iOS 4+에서 사용할 수있는'kCLLocationAccuracyBestForNavigation '으로 설정해야합니다. 그런 다음 OS를 최적화하십시오. – Nate

답변

0

나는 또한 응용 프로그램에서 '내 주변'기능을 최적화하기 위해 노력하고있어 - 내가 찾은 다음 SO 유용한 정보 게시 : 당신이있는 경우 link text

0

기회가됩니다 원하는 정확도 및 거리 필터가 올바르게 설정되어 있으면 사용자 또는 테스트가 업데이트를 트리거 할만큼 충분히 움직이지 않아서 업데이트가 발생하지 않습니다. @Nate의 의견과 같이 bestForNav 또는 bestForNav로 설정하면 더 많은 업데이트를 얻을 수있는 가능성이 더 커집니다.

위치 관리자를 종료하는 진정한 이유는 실제로 배터리를 절약하기 위해서입니다. GPS와 탐색을 위해 장치를 사용하는 대부분의 사용자는 연결 상태를 유지하는 것으로 알고 있습니다. 이와 같은 위치를 사용하지 않는 경우 다른 위치 업데이트가 필요할 때까지 위치를 확인하고 종료 한 다음 배터리를 절약하는 것이 좋습니다. . 이것은 타이머 또는 블록을 통해 수행 할 수 있습니다. 가장 중요한 것은 가능한 한 많은 배터리를 작동하고 저장할 수있는 방법에 대해 생각하는 것입니다.

관련 문제