23.08.23 수

2023. 8. 31. 01:36·Study/🌱 SeSAC

leading / leadingMargin

constraints to margin 체크박스 체크 유무 차이

위치 서비스 활성화 → 사용자 권한 확인 → 권한 결정 안되어 있다면 얼럿 → 바뀐 권한 체크 → 다시 권한 확인 → 허용 authorizedWhenInUse → didUpdateLocation

Untitled.png

viewDidLoad에서 권한을 체크하는 함수를 호출하지 않아도 권한 변경 함수가 호출이 된다.

주석처리 하지 않는 것이 좋다. 버그 이슈

Untitled.pngUntitled.png

🐞 버그

navigationController를 달고 화면 전환을 하면 권한 변경 메서드가 호출되지 않는다.

viewdidload가 기본적으로 호출하는 것은 아니다. nav나 tab 등을 달고 화면 전환을 해야하는 경우라면 권한 체크 함수를 명시적으로 viewDidLoad에서 호출하자

didUpdataLoactions

사용자의 위치가 계속 변경되기 때문에 한 번만 실행 되는 것이 아님

위치를 출력하면 아이폰에서 위치 업데이트가 필요한 시점에 알아서 메서드 호출이 된다.

Untitled.pngUntitled.png

백그라운드로 위치 정보를 계속해서 받아야 할 때 사용할 수 있다.

Untitled.png


💡 Enumeration

✅ Unfrozen Enumeration

멤버가 추가될 가능성이 있는 열거형을 의미한다. 라이브러리 또는 프레임워크에서 선언된 열거형의 멤버들을 모두 case로 처리하더라도 @unknown default 가 필요하다.

Untitled.png

✅ @frozen

Swift Attribute 종류 중 하나

@frozen → 더이상 열거형에 절대 추가 될 케이스가 없다고 확신

컴파일 시점에 더이상 추가될 요소가 없다는 것을 알린다.

default에 대한 대응을 할 필요 없다 → 컴파일 속도가 더 빨라짐, 효율!

Untitled.png


✅ coordinate

Untitled.png

위도 경도 값 가져오기

Untitled.png


💡Map View 띄우기

import MapKit

Untitled.pngUntitled.png

권한을 허용한다고 해서 지도에 사용자의 위치가 나타나는 것은 아님

직접 구현해야 함

✅ 지도에 원하는 위치 보여주기

Untitled.png

✅ 지도에 어노테이션 표시하기

Untitled.png

애플에서 기본으로 제공하는 핀

Untitled.pngUntitled.png

어노테이션 지우는 기능도 존재!

Untitled.pngUntitled.pngUntitled.png

→ 기기 기반 위치

✅ 권한 거부 시 얼럿 띄우고 설정 화면으로 이동하기

Untitled.pngUntitled.pngUntitled.png

🚨 위치 관련 코드들이 모두 메인 스레드가 아닌 global에서 작동하고 있다.

Untitled.png

권한 체크 부분에서 global로 설정한 후 메인에서 작동하도록 하지 않았기 때문

Untitled.png

메인 스레드로 작업 돌려주기

Untitled.png

핀 여러개 꽂고 필터링 하기

버튼 클릭 시 카페 어노테이션만 보여주기

Untitled.pngUntitled.png

필터링 시 removeAnnotations로 등록되어 있는 annotation을 모두 지워준 후 보여줄 annotation을 등록하기

Untitled.pngUntitled.png

현재 위치 가져오기, 거부 시 설정 페이지 이동

'Study > 🌱 SeSAC' 카테고리의 다른 글

23.08.25 금  (1) 2023.08.31
23.08.24 목  (0) 2023.08.31
23.08.22 화  (1) 2023.08.31
23.08.21 월  (2) 2023.08.27
23.08.18 금  (1) 2023.08.27
'Study/🌱 SeSAC' 카테고리의 다른 글
  • 23.08.25 금
  • 23.08.24 목
  • 23.08.22 화
  • 23.08.21 월
김졀니
김졀니
🍎 iOS 개발
  • 김졀니
    졀니의 개발 공부✨
    김졀니
  • 전체
    오늘
    어제
    • 분류 전체보기
      • iOS
        • Swift
        • UIKit&SwiftUI
        • RxSwift&Combine
        • WWDC
      • Study
        • 🚨 TroubleShooting
        • 🌱 SeSAC
  • 블로그 메뉴

    • 홈
    • Github
  • 인기 글

  • 최근 글

  • 태그

    clipstobounds
    의존성 주입
    OperationQueue
    ReactorKit
    traits
    swiftdata
    위치 권한
    ios
    concurrency
    Realm
    wwdc23
    Drawing Cycle
    pointfree
    actor
    observable
    Sendable
    @PropertyWrapper
    Swift
    CLLocation
    RxSwift
    layoutIfNeeded
    FileManager
    kingfisher header
    이미지 캐싱
    mainactor
    mapkit
    swift concurrency
    인앱리뷰
    동시성프로그래밍
    displayPriority
  • 최근 댓글

  • hELLO· Designed By정상우.v4.10.3
김졀니
23.08.23 수
상단으로

티스토리툴바