2015-08-22 24 views
9

Umbrella başlığında bir ad çakışması var. Çerçeve ismim "SecureData", ancak bu çerçevede "SecureData" olarak adlandırılan bir objektif-c sınıfına sahip olmak istiyorum.Şemsiye başlığını yeniden adlandırma

Sorun, şemsiye üstbilgisinin "SecureData.h" olarak adlandırılması gerektiğidir ve xcode ayarlarında şemsiye başlığı için farklı bir adın nasıl belirtileceğini anlayamıyorum. Bu mümkün mü, yoksa sadece farklı bir isimle mi gelmem gerekiyor?

cevap

15

Mümkün.

Module Map File tarafından şemsiye başlığı için farklı bir ad belirtebilirsiniz.

  1. Proje için yeni modulemap dosyası oluşturun. Build Settings -> Packaging -> Module Map File

Tamam, Sen beklenen etki elde edilir:

framework module XXXProject { 
    umbrella header "XXNewumbrellaName.h" 

    export * 
    module * { export * } 
} 
  • modulemap dosyasını belirtin.

    Umarım bu size yardımcı olacaktır.

  • +1

    Not: name 'module.modulemap' önerilir: http://clang.llvm.org/docs/Modules.html#module-maps –

    +1

    @ Cœur Bu önerilir, ancak kodunuzun derlenmesini de engelliyor :(https : //twitter.com/charlesismcom/status/846615073737007104 – Charlesism

    +1

    @ Cœur Xcode 8.3 Sürüm notları: "Aynı modülün hem kaynağında hem de yükleme dizinlerinde modül eşlemelerine sahip bir çerçeve oluştururken, derleyici bir yeniden tanımlama iletisi gösterecektir. (28638816) Geçici çözüm: Kaynak dizinindeki modül eşleme dosyasını varsayılan olmayan bir adla yeniden adlandırın (varsayılan ad, module.modulemap veya module.map şeklindedir) ve Modül Harita Dosyası oluşturma ayarını yeniden adlandırılan modül eşlemesine ayarlayın. " – Charlesism

    İlgili konular