TIL(Today I Learned)

12월 21일(월)

학습내용

  • Kahoot
    • Xcode에서 단위 테스트에 필요한 프레임워크는? XCTest
    • 기존의 값을 특정 형태로 변경하며, 옵셔널인 경우 추출후 변형까지 수행하는 고차함수는? flatMap, compactMap
    • func sorted(by areInIncreasingOrder: (Element, Element) throws → Bool) rethrows → [Element]의 올바른 표현은? (((T,T) throws → Bool) rethrows → [T]) or ((Element, Element throws → Bool) rethrows → [Element])
    • 매개변수로 함수를 전달받거나 함수를 반환하는 함수는? 고차함수
    • JSON : JavaScript Object Notation
    • [{“key”:[“value”]}]: 배열 내에 객체 내에 key의 값인 배열
    • iOS의 TableView는 Delegate가 꼭 필요하다: False(UITableView의 delegate 프로퍼티가 옵셔널이므로)
    • iOS의 TableView는 Data Source가 꼭 필요하다: False(UITableView의 dataSource 프로퍼티가 옵셔널이므로)
    • iOS 14의 UITableViewCell을 이루는 기본구성요소가 아닌 것은? textLabel (iOS14부터 Deprecated 되었다.)
      • iOS 버전이 바뀔때 마다 UITableViewCell처럼 큰 변화가 있으므로 블로그보다 공식문서를 확인하는 습관을 갖자.
  • JSON
    • 데이터를 0과 1로 인코딩/디코딩하지 않고 사람이 읽기 편하도록 문자열로 데이터를 주고받는 방법. 자바스크립트에서 먼저 사용되었고 지금은 여러 곳에서 공통적으로 사용되고 있다.
    • XML과 비슷하다.
    • 기계어 → XML → JSON 인간친화적, 느림
    • 기계어 ← XML ← JSON 기계친화적, 빠름
    • 구성 요소
      • {}: 객체
      • []: 배열
      • ” “: 문자열
      • 숫자
  • TableView 활동학습
    • TableView, DataSource, Delegate의 Ask, Tell을 잘 구분해야한다.
    • 대부분은 TableView가 Tell 한다. 응답, 처리는 Data Source, Delegate가 한다.
    • TableViewCell은 재사용된다.

문제점/고민한점

  • rethrows와 throws의 차이점은 무엇인가?
  • defaultContentConfiguration()은 무엇이며, 어떻게 사용할까?

해결방법

  • rethrows와 throws의 차이점은 무엇인가?
    • rethrows은 parameter로 입력된 함수가 던진 에러를 처리하지 않고 함수 외부로 던진다는 의미이다.
    • throws은 어떤 에러이든(어디서 발생한 에러이든) 전달한다는 의미이다.
    • 즉, throws가 rethrows보다 더 상위 개념이다.
    • rethrows 대신 throws를 사용할 수 있지만, throws 대신 rethrows 사용은 불가능하다.
    • rethrows를 사용하는 대신 throws를 사용하면 함수 내부에서 발생한 에러를 전달하는 것인지 입력 파라미터의 에러를 전달하는 것인지 의미가 불분명해지지만, rethrows 키워드를 사용함으로써 함수 내부에서 입력된 함수의 에러를 처리 하지 않고 외부로 전달한다는 의미를 명확하게 할 수 있다.
  • defaultContentConfiguration()은 무엇이며, 어떻게 사용할까?
    • defaultContentConfiguration(): Retrieves a default list content configuration for the cell’s style.
      1. cell의 defaultContentConfiguration()을 통해 UIListContentConfiguration을 받는다.
      2. 받아온 UIListContentConfiguration에 image, text 등을 설정한다.
      3. cell의 contentConfiguration에 2에서 설정한 UIListContentConfiguration을 넣는다.

참고