ios] 면접질문
Q. 뷰의 라이프사이클을 이야기하고 viewdidload에서 super을 사용하는이유는 ?
override func viewDidLoad() {
super.viewDidLoad()
}
Q. viewDidLoad에서 super.viewDidLoad() 넣어줘야하는지?
Q. 객체, 클래스의 인스턴스가 메모리에서 해제되는 시점에 호출되는 것은?
A. super는 부모클래스를 의미한다. 오버라이딩(재정의)를 하는 viewDidload에서 부모(super)의 작업을 실핼할지말지 선택하는 것
보통 viewDidload같이 뷰 라이프 사이클은 템플릿 패턴으로 구현되어있다. 뷰 컨트롤러의 뷰가 메모리에 로드될 때 OS에 의해 호출되는 것이기 때문에 super를 붙여주는게 좋다
-> 뷰가로드가되고, 뷰를 만들때 하는 여러 설정들을 마무리해주는 작업 - > super.viewDidLoad() -> 이후 아래에서 로직 구현
A. deinit -> 클래스의 인스턴스가 메모리에서 해제되는 시점에 호출됨- > 인스턴스가 해제되는 시점에서 해야할 일을 구현할 수 있음. deinit은 매개변수를 지닐 수 없음 - > 자동으로 호출되므로 직접 호출할 수 없음. -> 클래스 타입에만 구현가능 -> 해제되는 시점은 ARC의 규칙에 따라 결정됨.
https://archijude.tistory.com/146 [글 쓰는 프로그래머]
(Swift)인스턴스 생성 / 소멸 (init / deinit)
인스턴스를 생성하는 이니셜라이저와 클래스의 인스턴스가 소멸될 때 호출되는 디이니셜라이저, 그리고 이와 관련된 것들에 대해 알아봅니다. 프로퍼티 초기값 이니셜라이저 init 디이니셜라
archijude.tistory.com
override 할 때 super 꼭 호출해야 하나요??? - 야곰닷넷
뷰컨에서요 override func viewDidLoad() { super.viewDidLoad() } 꼭 super.viewDidLoad() 이거 넣어줘야 하나요..?? override func viewDidLoad() […]
yagom.net