[iOS/Swift] MapKit - 위치 권한 설정을 구현해보자!
·
iOS/💻 iOS Study
위치 권한 진행 방법을 결정 하려면 권한 부여 상태와 정확도 값을 모두 확인해야 한다. 위치서비스 o 권한 요청 권한 허용 사용자 정보 접근 가능 추후 거부 (설정 → 옵션 끄기) ios 시스템 설정 유도 권한 거부 ios 시스템 설정 유도 x 권한 없음 alert → ios 시스템 설정 유도 CoreLocation import import CoreLocation 위치 매니저 인스턴스 생성 private let locationManager = CLLocationManager() delegate 연결 locationManager.delegate = self 프로토콜 연결해주기 extension MainMapViewController: CLLocationManagerDelegate { // 사용자의 위치를 ..
[iOS/Swift] Realm - 백업 및 복구 구현하기
·
iOS/🔎 swift 정리하기
💡 백업 / 복구 개인 앱의 경우 개개인에게 백업 복구의 책임을 넘긴다. 개발자 → 기능만 제공, 백업 알아서,, 구글 드라이브, 드랍박스로 백업하기 → 써드파티 프로그램의 정책으로 유지보수 비용이 높다 아이폰 파일 앱 사용하여 백업 복구하도록 하기 1. realm 파일 자체를 압축 마이그레이션 대응이 잘 되어야 한다. 사용자가 백업해두고 한참 뒤에 복구할 수 있기 때문 realm 파일을 복구할 때는 복구 완료 후 앱을 껐다 켜야 함 2. json으로 압축하기 다른 sql을 쓰더라도 대응하기 좋음 🔎 realm 파일 압축하기 백업하고자 하는 파일들의 경로 배열 생성 var urlPaths = [URL]() 도큐먼트 위치 guard let path = documentDirectoryPath() else {..
[iOS/Swift] Realm - Migration
·
iOS/🔎 swift 정리하기
💡 Migration 컬럼 명을 변경하였기 때문에 일치하지 않는다는 런타임 오류가 발생한다. ✅ 스키마 버전 체크 func checkSchemaVersion() { do { let version = try schemaVersionAtURL(realm.configuration.fileURL!) print("schema version: \(version)") } catch { print(error) } } db 테이블 스키마에 대한 버전을 관리하기 위해 migration 작업을 해야한다. realm의 default schema 버전은 0 migration 작업은 appDelegate에서 작업해야 한다. func application(_ application: UIApplication, didFinishLau..
[iOS/Swift] Realm - 이미지 파일 저장하기
·
iOS/🔎 swift 정리하기
서버 통신 한 이미지 파일 저장하고 불러오기 서버 통신을 통해 받은 이미지 url을 데이터 베이스에 저장한 후 꺼내와서 이미지를 로드하면 오류가 발생한다. 데이터 베이스 내부에서 꺼내온 값을 글로벌로 접근하려고 하기 때문에 발생한 오류이다. DispatchQueue 외부에서 상수로 저장한 후 사용하면 오류가 나지 않는다. 이미지를 하나하나 불러올 때 마다 네트워크 통신을 하게 되는데, 이미지의 용량이 크거나 로드할 데이터가 많다면 이미지 로드가 오래 걸릴 수 있다. ❓ 어떻게 해결해야 할까? 이미지 구현을 셀 구성할 때 하지말고, 미리 UIImage 형식으로 변환 후 셀에 보여주는 것. 하지만 이 또한 데이터가 여러개라면 변환하는 데에 오랜 시간이 걸리고, 사용자가 보지 않고 넘겨버릴 이미지까지 모두 로..