CLLocationManager
를 사용해서 requestLocation()
을 호출하면 현재 위치를 한 번 받아올 수 있다.
근데 시뮬레이터에서는 괜찮지만, 실기기로 빌드하면 이게 꽤나 오래걸린다.
거의 10초 정도는 걸리는 것 같다.
속도를 줄일 방법이 있을까 싶어 검색을 해보다가 아래 글을 발견
CLLocationManager.requestLocation() takes about 10 seconds
requestLocation()
메서드 자체가
startUpdatingLocation()
호출 후, 여러 위치 데이터를 검색한 뒤 가장 정확한 값을 델리게이트로 전달해준 다음 stopUpdatingLocation()
를 호출해주는 동작을 제공해주는 convenient 메서드임
https://stackoverflow.com/questions/39499541/cllocationmanager-requestlocation-takes-about-10-seconds
⇒ 그렇기 때문에 어떤 위치 데이터가 최선인지를 금방 결정하지 못할 경우 10초 정도 걸릴 수도 있다고 한다.
이렇게 해결한 사람이 있다.
[📌 power-saving을 위한 프로퍼티](https://healthy-degree-cc2.notion.site/power-saving-532ed088fd97402b83da258b3d9baa2c) 에 정리된 내용대로
desiredAccuracy
값을 필요한 정보의 범위에서 가능한 가장 작은 값으로 설정해주면
👉 시스템이 더 전력 효율적으로 하드웨어를 사용할 수 있게 됨
👉 시스템이 하드웨어를 더 빨리 종료할 수 있게 됨 ⇒ stopUpdatingLocation()
을 더 빨리 할 수 있게 되는 것 같다.
종류는 아래와 같음 (참고 링크)
이 중 iOS에서의 기본값은 kCLLocationAccuracyBest
라고 한다. 꽤나 높은 값이 기본값으로 되어 있음.