Interface Builder의 아카이브 및 nib파일이 로드 된 후 호출되는 메서드, IB가 전부 아카이브 되어있기에 outlet과 action의 연결을 보장함.
awakeFromNib은 init과 loadView사이에 실행되게됨.
G선생님에 의하면..
G선생님의 설명만 보았을땐, ViewDidLoad랑 그렇게 차이가 없어보임.
이럴땐 구글링, [iOS] awakeFromNib()이 글에서 이런 문구가 있었음.
요약하면, awakeFromNib은 주로 아카이브에서 객체를 인스턴스화하고 초기화할 때 필요한 작업을 수행하기 위해 사용되며, 다른 객체로의 메시지를 안전하게 보낼 수 있는 시점이라는 특징이 있음.
cellForRowAt는 반복되어서, 만약 디자인이 고정적이라면 awakeFromNib()에 디자인을 넣는것이 더 효율적일것
?? 메시지가 뭐임?
objc의 작동 방식으로, 객체간의 상호작용을 하는 방법 중 하나임.
메시지를 안전하게 보낸다라는 의미는 두가지의 의미가 있음.
1. 메시지를 수신하는 메서드가 이미 정의되어 있다.
2. 메시지를 수신하는 메서드가 없어도 예외가 발생하지 않는다. (예외 처리를 해두었다)
nib는 NeXTSTEP의 인터페이스 빌더(Interface Builder)임. (NeXT는 스티브 잡스가 설립한 회사)
쉽게 말해서, Interface Builder의 구닥다리 버전.
NIB -> XIB로 넘어옴.
XIB는 XML기반의 인터페이스 빌더 파일이고, NIB도 XML기반의 인터페이스 빌더 파일임.
NIB와 XIB전부 인터페이스의 객체 및 레이아웃 속성을 저장함.
Interface Builder가 정확하게 무슨일을 하는지 궁금해짐.
Interface Builder의 실행을 3가지로 쪼갠다면
awakeFromNib() | Apple Developer Documentation
[iOS] awakeFromNib()
[TIL] Swift. awakeFromNib
[iOS] UINib 그리고 awakeFromNib에 대하여
A Bit About Interface Builder