Swift로 iOS 앱을 개발할 때 위치와 관련된 서비스를 확인하려면 CLLocationManager를 사용할 수 있습니다.
이 글에서는 위치 관리자가 현재 실행 중인지 아닌지를 확인하는 방법을 간단한 샘플 프로젝트를 통해 살펴보겠습니다. 먼저 새 프로젝트를 생성한 뒤, 뷰 컨트롤러에 위치 관리자 객체를 만들어야 합니다.
var locationManager = CLLocationManager()
위치 서비스 활성화 여부 확인하기
가장 먼저 확인해야 할 사항은 기기 자체에서 위치 서비스가 켜져 있는지 여부입니다. 이를 확인하려면 CLLocationManager.locationServicesEnabled() 함수를 사용합니다. 이 함수는 기기의 위치 서비스가 활성화되어 있는지를 Boolean 값으로 반환합니다.
if CLLocationManager.locationServicesEnabled() {
print("permissions allowed")
} else {
print("permissions not allowed")
}위 예제에서는 위치 서비스가 활성화되어 있으면 "permissions allowed"를 출력하고, 그렇지 않은 경우에는 권한이 허용되지 않았다는 메시지를 출력합니다.
위치 관리자의 실행 상태 확인 시 주의점
여기서 한 가지 유의할 점이 있습니다. CLLocationManager는 위치 관리자가 현재 실행 중인지, 즉 위치 관리자의 상태(state)를 직접 알려주는 메서드를 제공하지 않습니다.
다만 걱정할 필요는 없습니다. 위치 관리자가 이미 실행 중이라 하더라도 언제든지 위치 모니터링 시작 메서드를 다시 호출하여 사용할 수 있습니다. Apple 공식 문서에 따르면, 이 경우에도 해당 객체의 인스턴스가 여러 개 생성되지 않기 때문에 안전하게 호출할 수 있습니다.