관리 메뉴

김종권의 iOS 앱 개발 알아가기

[iOS - swift] Nib, File's Owner, First Responder 개념 본문

iOS 응용 (swift)

[iOS - swift] Nib, File's Owner, First Responder 개념

jake-kim 2020. 11. 1. 19:51

nib파일

  • 인터페이스 빌더에서 생성한 객체들을 직렬화하여 저장하는 파일(UI를 구성하는 객체 정보)
  • 세부 설정(폰트, 색상, 스타일) 및 객체 간의 연결정보 포함

nib파일 로드

  • 앱이 런칭할 때 nib-loading code 라는 nib파일을 로드하는 프레임워크의 기능에 의해 자동으로 로딩
  • 모든 객체들이 인스턴스화, 모든 연결이 재구성
  • 앱이 런칭될 때 자동으로 로드될 nib파일은 info.plist파일에 기록 (이 파일을 바탕으로 초기화)

nib파일과 관련된 라이프 사이클

  1. nib파일 로드: nib에 관련된 리소스를 메모리 또는 캐쉬로 불러옴(인스턴스화)
  2. 그 객체들은 initWithCoder: 메시지 받음 (커스텀 뷰는 initWithFrame 메시지 받음)
  3. init메세지를 받아 초기화
  4. 초기화가 끝나면 커넥션 연결(액션, 아울렛, 바인딩)
  5. awakeFromNib 메세지 (오브젝트 생성이 완료되었음을 알림)

 

nib파일로부터 생성한 객체의 라이프 사이클 관리

  • NSBundle, NSNib클래스로부터 nib파일을 로드하면 파일 속에 있는 객체의 사본을 만들어 저장
  • 최상위 객체(부모 객체를 가지지 않는 객체들)에 대해서는 강한참조, 하위 객체들에 대해서는 약한 참조 이용

File's Owner 객체

  • 임의의 객체가 그 자리에 들어갈 수 있게 하는 일종의 placeholder객체
  • AppDelegate객체는 nib파일로 부터 인스턴스화 되는 객체
  • nib 파일을 앱코드와 연결시켜주는 객체 (nib파일의 내용을 책임지는 컨트롤러)
    • nib파일(customView생성 시 .xib파일)을 로드할 때 File's Owner객체를 보고 지정한 대체 객체를 생성하여 nib파일에서 해당 객체들을 참조 할 수 있도록 하는 개념

First Responder

  • 이벤트를 받아서 처리하는 객체
  • "File's owner"와 유사한 placeholder객체
Comments