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] json으로 가져온 url(stirng)을 띄어쓰기제거, 한글 인코딩, url 유효성 검사하기 (0) | 2021.06.16 |
---|---|
viewWillLayoutSubviews() / layoutSubviews() viewDidLayoutSubviews()/ (0) | 2021.04.29 |
swift] protocol 사용 Delegate 만들어서 사용해보기! (0) | 2021.03.22 |
ios] CAGradientLayer - 그라데이션 효과 (0) | 2021.03.11 |
ios] 코드로 UICollectionViewCell 설정하고 UICollectionViewController에서 적용하기 (0) | 2021.03.08 |