TIL(Today I Learned)

11월 23일(월)

학습내용

  • 저번주 배운내용에 대해서 복습(Kahoot)하였다.
    • 응집도(cohesion)는 모듈의 기능이 스스로 응집된(집중된) 정도(순수성?, 독립성)를 의미한다.
    • 결합도(coupling)는 모듈 간의 결합의 정도(의존도)를 의미한다.
    • 응집도와 결합도는 상반 관계이다.
    • 응집도는 높을수록, 결합도는 낮을 수록 좋다.
    • 인스턴스끼리 메서드를 호출하는 것을 메시지를 보낸다고 표현할 수 있다.
  • View Controller Life Cycle에 대해서 학습하였다.
    • View Controller Life Cycle은 뷰의 상태변화와 그에 따라 각각의 뷰 컨트롤러 메서드가 호출되는 것이다.
    • viewDidLoad()는 1번만 호출된다(특수한 경우가 아니라면). 뷰컨트롤러가 메모리에 올라간 뒤에 호출된다.
    • viewWillAppear(), viewDidAppear(), viewWillDisappear(), viewDidDisappear() 4가지 메서드는 뷰가 나타나고 사라지는 각각의 타이밍에 호출되는 메서드이다.
    • 뒤로가기 Swipe Action, Sheet형 Modality를 위에서 Swipe Down Action 에서 viewWillDisappear, viewWillAppear가 여러번 호출될 수 있으므로 주의해야한다.

문제점/고민한점

  • 앱을 전환하거나 홈으로 나가게 되면 화면에서 뷰가 사라지므로 viewWillDisappear(), viewDidDisappear()가 호출될 것인가?
  • 왜 loadView()은 ViewController Life Cycle과 관련이 없는가?

해결방법

  • 앱을 전환하거나 홈으로 나가게 되면 화면에서 뷰가 사라지므로 viewWillDisappear(), viewDidDisappear()가 호출될 것인가?
    • 호출되지 않는다. 앱이 전환하거나 홈으로 나가는 것은 앱 단위의 생명주기와 관련된 것이므로 뷰컨트롤러 생명주기 메서드는 호출되지 않는다.
  • 왜 loadView()은 ViewController Life Cycle와 관련이 없는가?
    • ViewController Life Cycle은 뷰가 메모리에 로드 되고 난 후, 뷰가 나타나고 사라지는 상태에 대해서만 한정하여 다루기 때문에. (애플에서 그렇게 한정 했으니까..?, 그렇게 한정한 이유는 뷰가 로드 되기 전에 대한 상태를 다룰 필요가 없기 때문이 아닐까..)