[Cocoa Design Pattern] 24.Bundle
![](http://ash84.net/wp-content/uploads/1/cfile1.uf.111CE2494E1D5B1024A668.jpg)
**λ²λ€μ΄λ?**
β μ€νμ½λμ μ΄λ―Έμ§, μ¬μ΄λ, λ¬Έμμ΄, NIB νμΌκ³Ό κ°μ 리μμ€μ λͺ¨μ
β κ° λ¦¬μμ€μ λ€λ₯Έ λ²μ μ λμμ μ μ₯, μ¬μ©μμ μΈμ΄λ μ§μ μ€μ μ λ°λΌ
Β Β λ€λ₯Έ λ²μ μ 리μμ€λ₯Ό μ¬μ© κ°λ₯νκ² ν¨.
β μλ°μ JAR(Java ARchive), C# νλ‘κ·Έλλ°μ 리μμ€
**ν¨ν΄μ΄ λ§λ€μ΄μ§ λκΈ° **
β νμν 리μμ€κ° λ΄λΆ μ μ₯ 곡κ°μ μ¬λ¬λ²μ κ³Ό μ¬λ¬ νμΌλ‘ ꡬμ±λμ΄μλ κ²½μ°μλ,
Β Β ν κ³³μ λͺ¨μ μ μλλ‘ νλ€.Β
β μ€νμ½λμ 리μμ€λ₯Ό λμ μΌλ‘ λ‘λ ν μ μλλ‘ μ μ°ν νλ¬κ·ΈμΈ κΈ°λ²μ ꡬννλ€.Β
**ν¨ν΄μΌλ‘ λ¬Έμ ν΄κ²°**
β λ²λ€ = λλ ν 리 : μ½λ, 리μμ€λ±μ νμΌμμ€ν
λλ ν 리λ₯Ό ν΅ν΄μ λ§λ κ²Β
β κ³μΈ΅κ΅¬μ‘°λ‘ ꡬμ±λμ΄ μλ€.Β
**[ꡬμ±](http://developer.apple.com/library/ios/#documentation/CoreFoundation/Conceptual/CFBundles/BundleTypes/BundleTypes.html#//apple_ref/doc/uid/10000123i-CH101-SW1 "[http://developer.apple.com/library/ios/#documentation/CoreFoundation/Conceptual/CFBundles/BundleTypes/BundleTypes.html#//apple_ref/doc/uid/10000123i-CH101-SW1]λ‘ μ΄λν©λλ€.")**
* Contents
β λͺ¨λ λ²λ€ 리μμ€ λ΄κ³ μλ€.Β
Β Β
Β * Info.plist : λ²λ€μ λν μ 보,Β Unique νκ² μλ³ κ°λ₯ν λ²λ€ μλ³μ λ¬Έμμ΄μ μ μ₯νκ³ μμ.Β
Β * Mac OS : μ ν리μΌμ΄μ
μ€ν νμΌΒ
Β * Resources : nib νμΌ, κ·Έλν½, λ¬Έμμ΄, 리μμ€ νμΌ, μ§μλ³λ²μ (.lproj) ν΄λΒ
β μ¬μ©μμκ² νλμ νμΌμ²λΌ 보μ΄κ² νλ ν¨κ³Ό μμ. (ν¨ν€μ§)
β κ·Έλ¬λ μΈμ λ μ§ νμΈλλ₯Ό ν΅ν΄μ λ΄λΆ νμΌμ λ³Όμ μλ€.Β
*** λ²λ€μ μ₯μ Β
**β λ²λ€μ ν¨ν€μ§μ΄μ, νμ€ νμΌ λ·°μ΄λ‘ λ³Όμ μκΈ° λλ¬Έμ νΈμ§μ΄ κ°λ₯νλ€.Β
β μ΄λ 볡μ¬, μμ κ° κ°λ₯
β μμ§ν μ¬μ©μλ λ΄λΆ νμΌμ λ³Ό μΌμ΄ μμ΄μ λ³κ²½μ κ°λ₯μ±μ΄ μ€μ΄λ λ€.Β
β λ€κ΅μ΄ , μ§μν μ§μ. μμΉμλ μ§μν 리μμ€ μ½κ² μ κ±°Β
β μ¬λ¬λ²μ μ μ₯ λ° μ€νμ½λμ μ¬λ¬λ²μ μ ν¬ν¨ ν μ μμ.Β
β νΉμ κΈ°λ₯μ μμ‘΄μ μ΄ μλλΌ, μλ² λλ λ€μν νμΌμμ€ν
μ μ μ₯ν μ μλ€.Β
***λ°°ν¬Β
**
β CD : λ²λ€μ CDλ‘ λ³΅μ¬Β
β λ€νΈμν¬ : λ¬Έμ μΌκΈ°μ κ°λ₯μ± μμ, λ²λ€μ μΌλΆλ§ λ€μ΄λ‘λ λ°μ κ°λ₯μ±
β DMG : λμ€ν¬μ΄λ―Έμ§λ‘ μμ±, μ΄λμ λμ€ν¬λ‘ λ§μ΄νΈ λ¨Β
* νμ λ²λ€μ μ¬μ©ν΄μΌνλ κ²μ μλλ€. (λ
립ν 컀맨λλΌμΈ νλ‘κ·Έλ¨ κ°λ° κ°λ₯)
β λ²λ€ μ μμ, μλμΌλ‘ XCodeκ° μ΄λ―Έμ§, μ¬μ΄λ νμΌλ±κ³Ό κ°μ νμ€ λ¦¬μμ€λ₯Ό μμ μ΄ μνλ κ³³μ μμΉμν¨λ€.Β
Β
**μ½μ½μ μ¬μ© μμ **
β λ²λ€μ NSBundle ν΄λμ€λ‘ μΊ‘μνΒ
β νλμ μ΄νμ μ μ΄λ νλμ λ²λ€μ κ°μ§λ©°, λ©μΈ λ²λ€μ [NSBundle mainBundle]μ ν΅ν΄μ μ κ·Ό κ°λ₯ν¨.Β
β NSApplication β mainBundle β load nib file.Β
β λμ μΌλ‘ μ€νμ½λμ 리μμ€λ₯Ό λΆλ¬μ¬ μ μλ€. (375p)
β νμ¬ μΈμ΄μ μ§μ μ€μ μ μ ν©ν λ²μ μ κ²½λ‘ λ°ν
β μ§μ λ μ§μνμ ν΄λΉνλ 리μμ€ λ²μ μ λν κ²½λ‘ λ°ν νλ λ±μ 리μμ€ μ κ·Ό κ΄λ ¨ λ©μλλ₯Ό μ 곡ν¨.Β
β NSBundleμ Foundation νλ μμν¬μ μμλμ΄ μμ§λ§, ApplicationKit νλ μμν¬μμ μΉ΄ν
κ³ λ¦¬λ₯Ό ν΅ν΄μΒ
Β NSBundleμ μ¬λ¬ λ°©λ©΄μΌλ‘ νμ₯νλ€.Β
* λ©μΈ λ²λ€ λΏλ§μλλΌ μ€νμ½λλ₯Ό λ΄κ³ μλ λ²λ€μ μ κ·Όνλ κ²λ κ°λ₯ν¨. (I donβt know)
**λμ μΌλ‘ μ€νμ½λ λ‘λνκΈ°**
β λ²λ€μ μ΄ν리μΌμ΄μ
ꡬλμ μλ λ‘λλλ€.Β
β λ²λ€μ λμ μΌλ‘ λΆλ¬λ€μ΄λ €λ©΄Β
+(NSBundle*)bundleWithPath:(NSString*)fullPath : NSBundle μΈμ€ν΄μ€ μμ±
**377p μμ : myPlugin.bundle μ λ‘λ**
β λ²λ€ μΈμ€ν΄μ€ λ§λ€κ³ μΊ‘μν ν΄λ μλ λ‘λλμ§ μλλ€. ν΄λΉ μ½λλ₯Ό μ¬μ©ν νμκ° μμμκΉμ§ κΈ°λ€λ¦°λ€.Β
β κ°μ λ‘ μ€νμ½λλ₯Ό μ΄ν리μΌμ΄μ
μ λ§ν¬νκ² νλ €λ©΄, NSBundleμ load λ©μλ λλ principalClass λ©μλ μ¬μ©Β (I donβt know)Β
**ν¨ν΄ μ¬μ© κ²°κ³Ό **Β
β Β μ€νμ½λμ κ΄λ ¨ 리μμ€λ₯Ό νκ³³μ λμ΄, μ΄ν리μΌμ΄μ
ꡬλμ, 리μμ€ κ²½λ‘λ₯Ό νλμ½λ© νμ§ μμλ λλ€.Β
β  리μμ€μ μ½λλ₯Ό μ μ₯μ, λλ ν 리 κ³μΈ΅ μ¬μ©μ μ₯λ¨μ
Β Β Β : μ¬μ©μκ° ν΄λΉ μ΄ν리μΌμ΄μ
μ λ²λ€μ λ΄μ©λ¬Όμ λ³΄κ³ νΈμ§ ν μ μλ€λ μ
Β Β Β : κ·Έλ¬λ, λ€λ₯Έ μ¬μ©μκ° μ΄ν리μΌμ΄μ
μ μΈμ λ μ§ νμΈ, μμ ,μμ κ° κ°λ₯νλ€λ κ². Β