Because the order in which objects are instantiated from an archive is not guaranteed, your initialization methods should not send messages to other objects in the hierarchy. Messages to other objects can be sent safely from within
awakeFromNib—by which time it’s assured that all the objects are unarchived and initialized (though not necessarily awakened, of course).
즉, Interface Builder에서 사용할 오브젝트의 기본적인 초기화는 init 메소드 안에서 이미 완결해 둘 필요가 있다. awakeFromNib 멧세지는 각 오브젝트의 초기화가 끝난 후, 실제 User로부터의 인풋을 처리하기 이전의 처리로써 사용한다. 단 awakeFromNib가 복수의 오브젝트 안에 지정되어 있을 때 그 실행순서를 지정하는 것은 불가.
awakeFromNib의 실행순서를 지정하고 싶을 때에는 각 윈도우를 별개의 nib 파일로 지정하는 꼼수가 있다고 하지만 그 역시 완전한 답은 되지 못 한다.
awakeFromNib와 관련된 보다 심도 있는 토론이 Theocacao에도 있으니 참조하는 것이 좋을 듯.
(단, 이 페이지의 본문의 내용에는 오류가 있다. 오류의 상세에 대해서는 댓글을 참조할 것.)