Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- 리펙토링
- Refactoring
- 리펙터링
- UICollectionView
- SWIFT
- UITextView
- clean architecture
- 클린 코드
- ribs
- RxCocoa
- collectionview
- rxswift
- uitableview
- map
- tableView
- uiscrollview
- 리팩토링
- Human interface guide
- 스위프트
- swift documentation
- Clean Code
- MVVM
- Observable
- HIG
- ios
- 애니메이션
- swiftUI
- combine
- Protocol
- Xcode
Archives
- Today
- Total
김종권의 iOS 앱 개발 알아가기
[iOS - swift] iOS14+ 위치 권한 설정 (precise) 본문
info.plist에 관련 파일 추가
import
import CoreLocation
변수 delegate설정
var locationManager: CLLocationManager!
override func viewDidLoad() {
super.viewDidLoad()
locationManager = CLLocationManager()
locationManager.delegate = self
}
// 버튼 클릭 탭시, 권한 요청
locationManager.requestWhenInUseAuthorization() // when in use auth로 요청 등록
권한 수정 시, delegate 함수
// state
func locationManager(_ manager: CLLocationManager, didChangeAuthorization status: CLAuthorizationStatus) {
switch status {
case .authorizedAlways, .authorizedWhenInUse:
break
case .restricted, .notDetermined:
locationManager.requestWhenInUseAuthorization()
case .denied:
requirePermission.accept(.location)
@unknown default:
return
}
}
delegate아닌 곳에서 현재 위치 권한 체크
// location state
switch CLLocationManager.authorizationStatus() {
case .authorizedAlways, .authorizedWhenInUse:
break
case .restricted, .notDetermined:
// 아직 결정하지 않은 상태: 시스템 팝업 호출
locationManager.requestWhenInUseAuthorization()
case .denied:
// 거부: 설정 창으로 가서 권한을 변경하도록 유도
requirePermission.accept(.location)
@unknown default:
return
}
if #available(iOS 14.0, *) {
// location accuracy
let accuracyState = CLLocationManager().accuracyAuthorization
switch accuracyState {
case .fullAccuracy:
print("full")
case .reducedAccuracy:
print("reduce")
@unknown default:
print("Unknown")
}
}
'iOS 응용 (swift)' 카테고리의 다른 글
[iOS - swift] KeychainAccess프레임워크로 키체인(keychain)관리하기 (0) | 2020.11.15 |
---|---|
[iOS - swift] table view에서 특정 separator 삭제 방법 (header의 하단, 마지막 셀의 하단) (0) | 2020.11.12 |
[APNs] Apple push notification service (0) | 2020.11.08 |
[Deeplink] 딥링크 (URL Scheme, Universal Link) (0) | 2020.11.07 |
Xcode 불필요한 캐시를 안정적으로 삭제 (0) | 2020.11.01 |
Comments