본문 바로가기
Swift

Swift: CLLocationManager

by songmoro 2024. 9. 9.
728x90

앱에 위치 관련 이벤트 전달을 시작하거나 중지하기 위해 사용하는 개체

 

 

CLLocationManager 객체는 앱의 위치 관련 동작을 관리하는 중앙 장소이다.

LocationManager 개체를 사용하여 위치 서비스를 구성, 시작, 중지할 수 있다.

 

사용 가능한 서비스:

- 정확도에 대한 구성으로 사용자의 현재 위치에서 크거나 작은 변화 추적

- 온보드 나침반에서 heading 변경 보고

- 관심 지역을 모니터링하고, 누군가 해당 지역에 들어오거나 떠날 때 이벤트 생성

- 근처 블루투스 비콘에 범위 보고

 

 

앱에서 하나 이상의 LocationManager 개체를 생성하고, 위치 데이터가 필요한 곳에서 사용한다.

 

LocationManager 개체를 생성한 후, Core Location이 위치 변경을 얼마나 자주 보고해야 하는지 알 수 있도록 구성한다.

특히, 앱의 요구를 반영하는 값으로 distanceFilter, desiredAccuracy 속성을 구성.

 

CLLocationManager 객체는 CLLocationManagerDelegate 프로토콜을 준수하는 객체인 delegate 객체에 모든 위치 관련 업데이트를 보고한다.

LocationManager가 초기화를 완료한 후, 시스템이 앱의 권한 부여 상태를 delegate의 locationManagerDidChangeAuthorization(:) 메서드에 보고하기 때문에 LocationManager를 구성할 때 즉시 delegate를 할당해야 한다.

 

Core Location은 CLLocationManager 개체를 초기화한 스레드의 RunLoop를 사용하여 delegate 개체의 메서드를 호출한다.

그 스레드 자체에는 앱의 메인 스레드에서 볼 수 있는 것과 같은 활성 RunLoop가 있어야 한다.

728x90

'Swift' 카테고리의 다른 글

SwiftUI: 시트, 모디파이어  (0) 2024.10.21
Swift: 기기의 현재 위치 얻기  (0) 2024.09.09
Swift: Core Location  (0) 2024.09.09
Swift: Managing user interface state  (0) 2024.08.22
Swift: Model data  (0) 2024.08.22