2016-01-01 16 views
7

libjingle_peerconnection çerçevesini Xcode projeme aktarmaya çalışıyorum, ancak bazı nedenlerle Swift kaynak dosyalarında Objective-C başlığını import RTCICEServer ile içe aktaramıyorum. Başlık dosyalarını kullanmaya çalıştım. Neyi yanlış yapıyorum?Nesne-C Çerçeve (CocoaPod) Swift içine alma?

# Uncomment this line to define a global platform for your project 
# platform :ios, '8.0' 
# Uncomment this line if you're using Swift 
use_frameworks! 

target 'VideoRTCTest' do 
    pod "libjingle_peerconnection" 
end 

target 'VideoRTCTestTests' do 

end 

target 'VideoRTCTestUITests' do 

end 

enter image description here

+0

Evet. libjingle_peerconnection, eğer yardımcı olursa Objective-C'dir. – LeviXC

+0

Ben yok; Onu indirmem gerekti, iş şu anda çok meşguldü. Yapabildiğim zaman ona geri döneceğim. Muhtemelen Objective-C'ye geri dönecek. – LeviXC

cevap

8

Köprü

1.

seçtiğiniz yöntemi kullanarak projenize bir köprü başlık ekle xxx-Köprü-Başlığını oluşturun, en kolayı varlık Tek bir .m dosyasını oluşturma ve yanıtlama Bu iletişim kutusuna Köprü Başlığı Oluşturun:

köprü başlığında

yılında

Create Bridging Header

2. Referans sizin Pod'u böylece dosyalarınızı ekleyin:

// 
// Use this file to import your target's public headers that 
// you would like to expose to Swift. 

#import "RTCICEServer.h" 

3. Objective-C

Swift maruz Köprüleme başlığında bir kez, Swift'de Obj-C sınıflarını içe aktarmanız gerekmez. doğrudan bu kullanın:

let uri = URL(fileURLWithPath: "") 
let rtc:RTCICEServer = RTCICEServer(uri: uri, username: "", password: "") 
print(rtc) 

başka bir örneği here tarif edilmektedir.


Swift Recipes bu GitHub üzerinde çözüm ve ek ayrıntıları bulun.

+0

Ancak doğru yolu, pod dosyası use_frameworks etkin olduğu sürece bir köprüleme üstbilgisi oluşturmak zorunda kalmadan, hızlı dosya içindeki bölmenin modül adını (içe aktarma xxxx) almak, libjingle_peerconnection pod'unda yanlış bir şey olduğuna inanıyorum – JAHelia