2016-01-01 9 views
7

Ich versuche, das libjingle_peerconnection Framework in mein Xcode-Projekt zu importieren, aber aus irgendeinem Grund kann ich den Objective-C-Header mit import RTCICEServer in Swift-Quelldateien nicht importieren. Ich habe versucht, Header-Dateien usw. zu verwenden. Was mache ich falsch?Objective-C-Framework (CocoaPod) in Swift importieren?

# 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

Yup bin ich. libjingle_peerconnection ist Objective-C, wenn das hilft. – LeviXC

+0

Ich habe nicht; Ich musste es ablegen, Arbeit ist verrückt beschäftigt gerade jetzt. Ich werde darauf zurückkommen, wenn ich kann. Ich werde wahrscheinlich auf Objective-C zurückfallen. – LeviXC

Antwort

8

Brücke

1. Erstellen Sie eine xxx-Bridging-Header-

einen Überbrückungs Header zu einem Projekt hinzufügen die Methode Ihrer Wahl, die am einfachsten ein Wesen Erstellen einer einzelnen .m Datei und Beantworten Erstellen Sie Überbrückungskopfzeile zu diesem Dialogfeld:

Create Bridging Header

2. Referenz Ihre Pod in das Brückenkopf

Fügen Sie Ihre Dateien so:

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

#import "RTCICEServer.h" 

3. Objective-C zu Swift ausgesetzt

Im Bridging-Header müssen Sie die Obj-C-Klassen nicht in Swift importieren. Verwenden Sie diese direkt:

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

Ein weiteres Beispiel ist here beschrieben.


► Finden Sie diese Lösung auf GitHub und weitere Details zu Swift Recipes.

+0

aber der korrekte Weg besteht darin, den Modulnamen (import xxxx) des Pods in die swift-Datei zu importieren, ohne einen Überbrückungs-Header erstellen zu müssen, solange die use_frameworks in der pod-Datei aktiviert ist, glaube ich, dass etwas mit libjingle_peerconnection pod nicht stimmt – JAHelia