[iOS] Bundle에 대해 알아보자

CastleSilver·2023년 4월 11일
0

iOS 공부

목록 보기
6/13
post-thumbnail
class Bundle: NSObject

요약

디스크의 번들 디렉토리에 저장된 코드 및 리소스의 표현

설명

Bundle의 사전적 정의가 '묶음'인 것처럼 iOS에서 쓰이는 번들 또한 특정 유형의 콘텐츠를 묶은 것을 말합니다. 이 번들은 앱, 프레임워크, 플러그인 등등 여러 유형의 콘텐츠를 나타냅니다. 번들의 구조는 플랫폼 및 번들 유형에 따라 달라집니다. 그러나 자세한 구조를 몰라도 번들 인스턴스를 이용해 번들의 리소스에 접근할 수 있게 됩니다. 번들 인스턴스는 단일 인터페이스를 제공합니다. 이미지나 문자열같이 자주 사용하는 일부 리소스는 번들없이 바로 사용 가능합니다.

  • Package와의 차이점
    Package는 Finder가 단일 파일인 것처럼 사용자에게 제공하는 모든 디렉토리를 의미. 번들은 코드와 리소스를 포함하는 표준화된 계층 구조의 디렉토리를 의미. 패키지는 UX를 개선하기 위해 존재하지만 번들은 개발자가 코드를 패키지하고 운영 체제가 해당 코드에 엑세스하도록 돕는데 더 적합함.

사용 방법

1. 원하는 번들 디렉토리에 대한 번들 인스턴스를 생성합니다.

// Get the app's main bundle
let mainBundle = Bundle.main

// Get the bundle containing the specified private class.
let myBundle = Bundle(for: NSClassFromString("MyPrivateClass")!)

2. 번들 인스턴스의 메서드를 사용하여 필요한 리소스를 찾습니다.

리소스를 찾을 때 리소스 이름과 유형을 제공해야 합니다. 리소스를 찾으면 파일을 여는 데 사용할 수 있는 경로나 URL을 반환합니다.

NSBundle *main = [NSBundle mainBundle];
NSString *resourcePath = [main pathForResource:@"Seagull" ofType:@"jpg"];

3. 다른 시스템 API를 사용하여 리소스와 상호 작용합니다.


참고

Apple 공식 문서
더 자세한 설명

profile
우당탕탕 비전공자 개발자

0개의 댓글