2017-10-05 8 views
1

UIViewController의 func viewSafeAreaInsetsDidChange을 무시하면 super를 호출해야합니까?viewSafeAreaInsetsDidChange를 재정 의하여 super를 호출해야합니까?

override func viewSafeAreaInsetsDidChange() { 
    super.viewSafeAreaInsetsDidChange() 
    // do my stuff 
} 

난 당신이 func viewWillAppear(_ animated: Bool)을 무시하고 내부의 super를 호출하지 않는 경우, 앱이 비정상적으로 작동 할 수 있음을 알고있다. 실제로 애플은 어느 시점에 super으로 전화해야한다고 말합니다. 나는 그것이 여기의 경우가 아니라고 생각한다. 그리고 그것은 내가 확인하고 싶었던 것이다!

답변

3

명시 적으로 이유가있는 경우를 제외하고는 반드시 필요하지는 않지만 일반적으로 대체 메서드에 super을 호출하는 것이 가장 좋습니다.

나중에 뷰 컨트롤러가 사용자 정의 UIViewController 하위 클래스에서 상속되어야한다고 결정하면 각 하위 클래스에서 수퍼 클래스의 구현을 실행하기 위해 코드를 변경할 필요가 없습니다.

+1

나는 그렇게하는 것이 가장 좋은 방법이지만,'func viewWillAppear (_ animated : Bool)'을 오버라이드하고'super' 내부를 호출하지 않으면 앱이 엉뚱한 행동을 할 수도 있습니다. 실제로 애플은 어떤 시점에서'슈퍼 '라고 불러야한다고 말한다. ** 나는 여기에 해당하지 않는 것 같아요, 그리고 그게 내가 확인하고 싶었어! ** :) – jdev