2013-04-30 19 views
8


Ben Static LibraryiOS için uygulamalar oluşturuyorum. Neredeyse bitirdim, ama kaynaklar ile ilgili bir sorun var.Kaynak dosyaları Statik Kitaplık ile nasıl aktarılır (Kaynaklar pakette nasıl sarılır)?

Statik Kitaplığım çok sayıda resim ve ses dosyası kullanıyor. Statik Kütüphanem ile nasıl aktarabilirim?

Biz bir paket üzerinde sarın ve .a dosyanın boyunca verebilir biliyorum. Ancak, Görüntüler ve ses dosyalarını bir Paket dosyasında nasıl dolduracağımı bilmiyorum.

Yaptıklarımı:

  • Ben çok arandı, ancak herhangi yararlı bağlantılar bulamadık.
  • Conceptual CFBundles referansım var, ancak benim sorunum için herhangi bir çözüm bulamadım.
  • Ben XCode için kullanılabilir dosya şablonları teslim ancak Settings Bundle.

cevap

9

birden demetleri ve bunu yapmak için birkaç farklı şekilde bir uygulama oluşturmak için çeşitli sebepler vardır dışındaki herhangi bohça türünü gördü vermedi. Tecrübelerime için en iyi yolu açık Xcode ve yeni paket projesi oluşturmak:

  1. seçin: Dosya -> Yeni Proje ... -> Grubu Mac OSX -> Çerçeve & Kütüphane -> Bundle (!). Kaynak dosyalarınızı projeye ekleyin.
  2. Diğer iPhone uygulamalarını oluştururken paketi oluşturun.
  3. Bu projeyi statik kitaplık projenize ekleyebilir ve kitaplığın her değiştiğinde yeniden oluşturabilirsiniz. Paketin kendisinin kitaplık dosyanızla ilişkilendirilmeyeceğini bilmelisiniz. uygulama projelerinde
  4. (> bulup yukarıda inşa .bundle dosyayı seçin kopyalayın vermeyin. - - ...> Mevcut Dosya Ekle) sıradan bir kaynak dosyası olarak projenize .bundle dosyasını ekleyin.

Örnek:

// Static library code: 
#define MYBUNDLE_NAME  @"MyResources.bundle" 
#define MYBUNDLE_IDENTIFIER @"eu.oaktree-ce.MyResources" 
#define MYBUNDLE_PATH  [[[NSBundle mainBundle] resourcePath] stringByAppendingPathComponent: MYBUNDLE_NAME] 
#define MYBUNDLE   [NSBundle bundleWithPath: MYBUNDLE_PATH] 

// Get an image file from your "static library" bundle: 

- (NSString *) getMyBundlePathFor: (NSString *) filename 
{ 
     NSBundle *libBundle = MYBUNDLE; 
     if(libBundle && filename){ 
      return [[libBundle resourcePath] stringByAppendingPathComponent: filename]; 
     } 
     return nil; 
} 

// ..... 
// Get an image file named info.png from the custom bundle 
UIImage *imageFromMyBundle = [UIImage imageWithContentsOfFile: [self getMyBundlePathFor: @"info.png"] ]; 

fazla yardım için kontrol edebilirsiniz bu iyi haberler

  1. iOS Library With Resources

  2. Resource Bundles

Umarım size yardımcı olur.

+0

Cevabınız için teşekkür ederiz :) –

+0

hmmm. Midhun :-) –

+0

bir şey hoş geldiniz: imageWithContentsOfFile, daha hızlı olabileceğinden, caching'i kullanırken imageNamed'i kullanmak daha iyidir çünkü daha az kod ile aynı sonucu elde edebilirsiniz: '[UIImage imageNamed : [NSString stringWithFormat: @ "my.bundle /% @", imageName]]; ve doğru paket adını –

İlgili konular