임포트
import CoreLocation
locationManager 인스턴스 생성
컨트롤러 클래스 내부에
let locationManager = CLLocationManager()
권한 획득
viewDidLoad() 안에 locationManager의 requestWhenInUseAuthorization() 메소드 선언
override func viewDidLoad() {
super.viewDidLoad()
locationManager.requestWhenInUseAuthorization()
}
그리고 프로퍼티 리스트(.plist)에 권한 설정을 추가합니다.
key값으로 privacy-When In Use Usage Description을 선택하고 value에 해당 권한을 얻기 위한 이유를 입력합니다.
위치 사용
locationManager.requestLocation - 현재 위치를 한 번 전송 요청
locationManager.startUpdatingLocation - 현재 위치를 계속적으로 추적
requestLocation을 사용 할 때 필요한 delegate 메소드
didUpdateLocations와 didFailWithError를 인자로 갖는 locationManager 메서드 둘다 반드시 implement해야합니다.
extension WeatherViewController: CLLocationManagerDelegate {
func locationManager(_ manager: CLLocationManager, didUpdateLocations locations: [CLLocation]) {
}
func locationManager(_ manager: CLLocationManager, didFailWithError error: Error) {
}
}
locations을 통한 좌표값(경도, 위도) 얻기
// locations는 옵셔널 배열이고 가장 최신으로 업데이트된 정보가 배열의 뒷부분에 쌓이므로 .last를 사용하였다.
if let location = locations.last {
let lon = location.coordinate.longitude // 경도
let lat = location.coordinate.latitude // 위도
}
'Ios' 카테고리의 다른 글
Ios - Firebase의 Authentication 사용하기 (0) | 2020.01.29 |
---|---|
Ios - CocoaPods (0) | 2020.01.23 |
Ios - API와 찰떡궁합 DispatchQueue.main.async (0) | 2020.01.14 |
Ios - Api 사용하기(urlSession, parseJson) (0) | 2020.01.03 |
IOS - 다크모드(Dark mode)를 지원하는 Color Set 만들기 (0) | 2019.12.06 |