nib와 bundle

2023. 8. 28. 01:46🍏/Xcode

Nib

Nib(NeXT Interface Builder)는 macOS와 iOS 앱의 UI 구성 요소와 그 요소 간의 연결을 정의하는 데 사용되는 파일 포맷입니다. 이는 Interface Builder라는 툴을 사용해 생성하거나 편집할 수 있습니다. Nib 파일은 일반적으로 .xib 확장자를 가진 원시 XML 파일 또는 런타임에 빠르게 로딩할 수 있도록 컴파일된 .nib 확장자를 가진 파일로 저장됩니다. 뷰 컨트롤러, 뷰, 다른 객체와 그 관계를 정의합니다.

  • nib(NeXT Interface Builder): 뷰의 layout, display등의 요소들을 object graph로 만들어서 직렬화한 파일
  • 인터페이스 빌더에서 구성한 모든 정보는 .xib파일(XML Interface Builder)라는 파일로 저장
  • 프로젝트 컴파일 시 바이너리파일인 .nib파일이 되는 것

* Interface Builder란? 코드와 상반되는 개념인 그래픽 사용자 인터페이스

Bundle

Bundle은 파일과 디렉토리의 계층적 구조를 묶은 것으로, 리소스와 실행 가능한 코드를 캡슐화합니다. 예를 들어, macOS 앱은 .app 확장자를 가진 앱 번들을 사용합니다. 이 안에는 앱의 실행 가능한 파일과 앱 아이콘, Nib 파일, 사운드 파일, 이미지 등 여러 리소스가 저장됩니다.

nibName과 bundle in UIViewController
UIViewController에서 nibName과 bundle은 초기화 메서드 init(nibName:bundle:)에서 사용됩니다. 이 메서드를 사용하면 뷰 컨트롤러가 자신의 뷰를 로드할 때 사용할 Nib 파일과 그 파일이 위치한 번들을 명시적으로 지정할 수 있습니다.

nibName: 로드할 Nib 파일의 이름입니다. 이 이름은 확장자를 제외한 문자열로 제공됩니다.
bundle: Nib 파일을 포함하는 번들입니다. 번들을 명시적으로 지정하지 않으면 메인 번들이 사용됩니다.

예시:

let myViewController = UIViewController(nibName: "MyCustomView", bundle: nil)

여기서 MyCustomView.xib는 메인 번들에 위치해 있어야 하며, 그 내부의 UI 요소는 myViewController의 뷰로 로드됩니다.

 

출처: nib나무위키

 

 

Nib Files

Nib Files Nib files play an important role in the creation of applications in OS X and iOS. With nib files, you create and manipulate your user interfaces graphically, using Xcode, instead of programmatically. Because you can see the results of your change

developer.apple.com