2015-02-03 13 views
11

Bu yüzden Swift ve Objective-C Sınıflarını içeren bir iOS projesi üzerinde çalışıyorum.Karıştırma Swift ve Objective C: "ProjectName-Swift.h" dosyası bulunamadı

Objective-C'de açıklanan bir nesneyi başlatmak için, Swift sınıflarımda kullanmak zorunda kalacağım başlıkların tüm içe aktarımlarını içeren bir Bridging-Header dosyasına sahip olduğumu anladım. Ve projemde harika çalışıyor. İhtiyacım olan tüm dersleri yaptım, Swift'de Objective-C sınıflarını alt sınıflara ayırdım, her şey yolunda.

Sorunum tam tersi olduğunda sorunum: bir Objective-C dosyasında hızlı bir nesneyi başlat. Evet

  • Üzerinde çalıştığım * .m dosyasında satır #import "<#YourProjectName#>-Swift.h" eklemek Modüllerolarak

    • tanımlayın: Ben de bu seçenek var gerektiğini okudum.

    Ve bunu yaptım: Ben değiştirilmesi gereken Yapı Ayarlar tüm değerleri değişti

    . import satırını ekledim, hatta üstbilgi dosyası oluşturmaya çalıştım, ancak hala "<#YourProjectName#>-Swift.h" file not found hata var. Tabii

    , ben, gerçek modül adıyla ben Yapı Ayarlar Ambalaj bölümünde Ürün Modülü Adı altında bulunan bir YourProjectName yerini aldı. Ayrıca, Proje Adı'nda boşluk yoktur.

    Adımı unuttum mu?

    Yardımlarınız için teşekkür ederim.

  • +0

    Bu #import'un bir örneğini yaptım "<#YourProjectName #> - Swift.h, proje adı sample1 ile #import" sample1-Swift.h "olarak değiştirilir. – Sulabh

    +0

    Bir şey daha var, zaten bir köprüleme var Projemdeki üstbilgi – Sulabh

    cevap

    7

    -Swift.h dosyasını .m Objective-C dosyasından .h başlık dosyasından almadığınızdan emin olun. ...

    Eğer adresinin Swift kodu kullanmak istediğiniz dosyayı herhangi Objective-C um içine Swift kodu için Xcode oluşturulan başlık dosyasını içe: docs sadece .m ithal bahsediyor.

    -Swift.h dosya oluşturma sırasında oluşturulur ve bir .h dosyasında aktararak hep dosyanın mevcut biliyorum bile başarısız olduğunu tespit ettik. Derleyici tarafından oluşturulduğundan, derleyici, üstbilgiler başlıklardan geçtiğinde temizleniyor ve .swift dosyaları derlendikten sonra yeniden oluşturulduğunu tahmin ediyorum.

    +0

    Bu çalışmayı bir şekilde başlık dosyalarında yapabilir miyim, yoksa bu sorunu atlatabilir miyim? Swift'ten bir Objective-C nesnesinde Swift özelliği olan bir özellik belirlemem gerekir - bu hala mantıklıysa, – jeroen

    +0

    "Bir Swift türü olan Objective-C nesnesi" ile ne kastettiğinizi anlayamazsınız. Swift türleri Objective-C. – phatblat

    +0

    'da genişletilemez. @phatblat, "@objc sınıfında bir sınıf oluşturursam" Object' Bir obj-c başlık dosyasında bir özellik olarak kullanamıyorum? – YichenBman

    İlgili konular