2015-03-02 24 views
16

Swift'de yazılmış bir iOS projesi üzerinde çalışıyorum ve düzenli "uygulama" projesinden bazı sınıfları almak ve yeniden kullanılabilir bir Swift içine almak istiyorum. çerçeve yerine (ve belki de Github ve Cocoapods üzerinden halka açık hale getirebilir).Objective-C koduna başvuruları olan bir Swift framework oluşturma

Çerçeveler görünüşte Objective-C köprüleme başlıklarına sahip olamadığı için çerçeve yapıyorum, ancak çerçeve kodumu derlemek için birkaç Objective-C sınıfına başvurmam gerekiyor (bu durumda: Google Haritalar iOS SDK).

Ayrıca, çerçeve projemde GoogleMaps.framework'ı bağlantılı bir kitaplık olarak ekledim, ancak daha sonra, Swift kodunu nasıl "içe aktarabilirim?"

Mevcut araçlar ve Swift sürümü ile bu mümkün mü ve nasıl devam etmeliyim?

Teşekkürler.

cevap

9

O kadar karmaşık değildi, aslında ... Sadece bazı şeyleri yanlış yapıyordum.

Birincisi, köprü başlıkları o ortamda gerekli değildir şunlardır: Google Haritalar iOS SDK düzenli .framework dosyası olarak verilmiştir, bu nedenle geliştirme dili o Swift ithal nasıl üzerinde hiçbir etkisi yoktur. Apple, "Dışsal çerçeveleri içe aktarma" başlıklı belgede açıkça belirtmektedir: https://developer.apple.com/library/ios/documentation/Swift/Conceptual/BuildingCocoaApps/MixandMatch.html.

Çerçeve, proje ayarlarının "Kütüphanelerle ikili bağlantı" bölümüne eklenmesi kadar kolaydır. Ayrıca, bağlı kütüphaneleri ve çerçeveleri de eklemeyi unutmayın (GoogleMaps.framework'ın durumunda, birkaç tane var).

Sonra Swift kodu, çerçeve sınıfları basitçe yaparak mevcut olmalıdır:

import GoogleMaps 

Hiçbir köprü başlık yok "vs. olmayan modüler başlık" ile uğraşan hatalar. Cevabınız için

+0

sayesinde, sadece aynı sorunla karşılaştı, ama ben bir kütüphane almaya çalıştığınızda, benim durumumda da bir çerçeve inşa ediyoruz, xcode böyle modülü 'SVProgressHUD' –

+0

@SiuChungChan ait ewrror gösterir SVProgressHUD Cocoapod kullanarak? Problemin benim sahip olduğumla aynı olmayabilir. Belki yeni bir soru başlatmak ve daha fazla bilgi vermek daha iyi olur mu? – Romain

+0

Bir cocoapod kullanmadın, şeylerin seslerinden, Romain? –

İlgili konular