Swift TIL(51)

웰디(Well-D)·2023년 10월 16일
0

Sweet & Soft, SWIFT

목록 보기
49/76
post-custom-banner

수업

따로 정리

복습

늦은 복습 시작

빨리 앱만들기를 하고 싶은 마음과 그렇지 못한 진도량 (코쓲)

오늘 내용은 사실 이해하기 크게 어려운 부분들은 아니었다. 다만 스위프트에서 날짜와 시간 다루기가 지난번에 들었을때는 전체 그림을 잘 잡지못해서 개념이 혼재된 느낌도 조금 있었는데, 확실히 두번듣고, 앞에 개념도 선명한 채로 들으니 훨씬 이해도 잘되고 혼재되지 않았다.

네트워킹시 Result 타입

let's swift 에서 함수와 객체사이 세션에서도 봤던 부분이라 좀 더 눈에 잘 들어왔던 것 같다.

  • Result 타입 사용 없이 : 파라미터가 두개인(데이터, 에러) completion 콜백함수로 정의 , 내부에서 조건에 따라 completion함수에 데이터, 혹은 에러(열거형 case)를 넣어 실행

  • Result 타입 사용 해서 : 파라미터가 한게 Result 타입인 콜백함수로 정의, 내부 completion 함수호출 시 각 열거형(success, failure)에 따라 내부에 연관값을 넣어서(데이터, 혹은 에러(열거형 case)) 실행 => 클로져에서 result 를 switch 문으로 success 케이스, failure케이스 별로 let 바인딩을 진행하여 연관값을 꺼내서 사용

  • 코드가 훨씬 깔끔하고 옵셔널바인딩 등도 불필요해진다

스위프트에서 날짜와 시간 다루기

암기하지 않고 찾아쓴다, 큰그림 그리기

  • Date구조체 => Calendar 구조체 / DateFormatter 클래스

  • Date구조체로 인스턴스 생성 (현재시간 date 인스턴스 형태로 만들어짐 : 기준시간 referenceDate + 간격시간(timeIntervalSinceReferenceDate))

  • Calendar구조체 => 타입속성 current 사용(양력달력을 반환) / locale/ timeZone 설정

  • component메서드(열거형, from:) => date인스턴스에서 연/월/일/시/분/초/요일(숫자) 추출

  • dateComponents 메서드(열거형 배열, from:) => 배열형태로 전달, 추출가능

  • 열거형으로 요일을 만들고 case별로 원시값 설정, 타입계산속성을 통해 열거형의 rawValue(component메서드를 통한 요일숫자 추출)로 요일 case리턴

  • dateComponents메서드의 [.day], from: , to: 를 통한 간격계산예시

  • DateFormatter클래스 사용 : 지역.시간설정/ 날짜,시간형식 설졍 => 기본구현사용 (.dateStyle, .timeStyle) 혹은 커스터마이징 (.dateFormat 속성 설정 => 유니코드표준 활용) 후 string(from: ) 메서드를 통해 문자열 반환

  • 예시 : 포스팅 시 Date인스턴스 생성, 해당 구조체 내에 계산속성으로 포스팅 시간 인스턴스를 문자열로 변환하여 반환해주는 기능 구현

  • .date(from: 문자열) 로 다시 Date인스턴스로 변환도 가능

  • DateComponents구조체 사용여 내가 원하는 시간, 날짜를 Date인스턴스로 변경가능 => DateComponents 인스턴스 생성 후 year, month, day등의 속성 값 재할당 => Calendar.current.date(from: 인스턴스) 를 통해 Date인스턴스로 변경 => Date구조체를 확장하여 내부에서 init?으로 구현해주면 더 깔끔하고 세련됨
    (소문자 self기능 기억하기)

profile
Wellness 잘사는 것에 진심인 웰디입니다. 여러분의 몸과 마음, 통장의 건강을 수호하고싶어요. 느리더라도, 꾸준히
post-custom-banner

0개의 댓글