[iOS][Swift] CLLocationManager - 사용자 위치정보 가져오기

Jay·2023년 10월 18일
1

iOS

목록 보기
45/47

iOS에서 Swift를 사용하여 위치 정보를 추적하려면 주로 CoreLocation 프레임워크를 사용합니다. 이 가이드에서는 위치 정보를 사용하기 위한 기본적인 방법을 알아봅니다.

1. Info.plist 권한 설정

위치 서비스를 사용하기 위해서는 사용자의 권한이 필요합니다. 따라서 앱이 위치 정보에 접근하려면 Info.plist에 권한 요청 메시지를 추가해야 합니다:

<key>NSLocationAlwaysAndWhenInUseUsageDescription</key>
<string>체크인 기능을 사용하기 위해서 위치정보 권한이 필요합니다.</string>
<key>NSLocationAlwaysUsageDescription</key>
<string>체크인 기능을 사용하기 위해서 위치정보 권한이 필요합니다.</string>
<key>NSLocationUsageDescription</key>
<string>체크인 기능을 사용하기 위해서 위치정보 권한이 필요합니다.</string>

2. 위치 관리자 초기화 및 설정

import CoreLocation

class LocationManager: NSObject, CLLocationManagerDelegate {
    private var locationManager = CLLocationManager()
    
    override init() {
        super.init()
        locationManager.delegate = self
        locationManager.desiredAccuracy = kCLLocationAccuracyBest
    }
}

3. 사용자에게 위치 권한 요청하기

func requestLocationPermission() {
    locationManager.requestWhenInUseAuthorization()
    // 또는 항상 사용 권한을 위해
    // locationManager.requestAlwaysAuthorization()
}

4. 위치 정보 업데이트 받기

사용자의 현재 위치 정보를 얻으려면 다음 코드를 사용합니다:

func startLocationUpdates() {
    locationManager.startUpdatingLocation()
}

func locationManager(_ manager: CLLocationManager, didUpdateLocations locations: [CLLocation]) {
    if let location = locations.last {
        print("Latitude: \(location.coordinate.latitude), Longitude: \(location.coordinate.longitude)")
    }
}

5. 오류 처리

위치 정보를 받는 도중에 오류가 발생하면 다음 메서드로 처리할 수 있습니다:

func locationManager(_ manager: CLLocationManager, didFailWithError error: Error) {
    print("Location Error: \(error)")
}

6. 위치 권한 상태 감지

사용자가 위치 권한을 변경하면 다음 메서드를 통해 이를 감지하고 적절히 대응할 수 있습니다:

func locationManager(_ manager: CLLocationManager, didChangeAuthorization status: CLAuthorizationStatus) {
    switch status {
    case .authorizedAlways, .authorizedWhenInUse:
        startLocationUpdates()
    default:
        // 필요한 처리를 여기에 추가
        break
    }
}
profile
Junior Developer

0개의 댓글