Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
Tags
- Observable
- Protocol
- clean architecture
- collectionview
- Refactoring
- Xcode
- ribs
- map
- UICollectionView
- uitableview
- 스위프트
- RxCocoa
- SWIFT
- combine
- 리펙터링
- Clean Code
- rxswift
- swiftUI
- 클린 코드
- Human interface guide
- HIG
- ios
- UITextView
- MVVM
- swift documentation
- tableView
- 리펙토링
- 리팩토링
- uiscrollview
- 애니메이션
Archives
- Today
- Total
김종권의 iOS 앱 개발 알아가기
[iOS - swift] Nib, File's Owner, First Responder 개념 본문
nib파일
- 인터페이스 빌더에서 생성한 객체들을 직렬화하여 저장하는 파일(UI를 구성하는 객체 정보)
- 세부 설정(폰트, 색상, 스타일) 및 객체 간의 연결정보 포함
nib파일 로드
- 앱이 런칭할 때 nib-loading code 라는 nib파일을 로드하는 프레임워크의 기능에 의해 자동으로 로딩
- 모든 객체들이 인스턴스화, 모든 연결이 재구성
- 앱이 런칭될 때 자동으로 로드될 nib파일은 info.plist파일에 기록 (이 파일을 바탕으로 초기화)
nib파일과 관련된 라이프 사이클
- nib파일 로드: nib에 관련된 리소스를 메모리 또는 캐쉬로 불러옴(인스턴스화)
- 그 객체들은 initWithCoder: 메시지 받음 (커스텀 뷰는 initWithFrame 메시지 받음)
- init메세지를 받아 초기화
- 초기화가 끝나면 커넥션 연결(액션, 아울렛, 바인딩)
- 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객체
'iOS 응용 (swift)' 카테고리의 다른 글
[iOS - swift] Custom View (xib) (2) | 2020.11.01 |
---|---|
[iOS - swift] custom cell(일반 cell, Header cell), Hugging, Compression (0) | 2020.11.01 |
[iOS - swfit] Codable 사용방법 (Encode, Decode) (0) | 2020.10.18 |
[iOS - swift] scroll view에서 원하는 위치로 scroll하기 (0) | 2020.10.17 |
[iOS - swift] iOS13버전 이상에서 SceneDelegate삭제하기 (0) | 2020.10.17 |
Comments