2016-01-01 4 views
7

Я пытаюсь импортировать фреймворк libjingle_peerconnection в свой проект Xcode, но по какой-то причине я не могу импортировать заголовок Objective-C с import RTCICEServer в исходные файлы Swift. Я попытался использовать заголовочные файлы и т. Д. Что я делаю неправильно?Импорт Objective-C Framework (CocoaPod) в Swift?

# 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 я. libjingle_peerconnection - Objective-C, если это помогает. – LeviXC

+0

У меня нет; Я должен был его отложить, работа сейчас сумасшедшая. Я вернусь к нему, когда смогу. Скорее всего, вернемся к Objective-C. – LeviXC

ответ

8

мост

1. Создать ххй-Bridging-заголовок

Добавить мостиковый заголовок вашего проект, используя метод вашего выбора, самое простое существо создавая один файл .m и отвечая Создайте заголовок заголовка в этом диалоговом окне:

Create Bridging Header

2. Ссылка на яйце в обводного заголовке

Включите ваши файлы, так:

// 
// 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

После того, как в заголовок моста вам не нужно импортировать классы Obj-C в Swift. Используйте их непосредственно:

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

Другой пример описан here.


► Найти это решение на GitHub и дополнительные подробности о Swift Recipes.

+0

, но правильный способ заключается в том, чтобы импортировать имя модуля (import xxxx) модуля внутри swift-файла без необходимости создавать заголовок моста, пока файл pod имеет включенную функцию use_framework, я считаю, что что-то не так с libjingle_peerconnection pod – JAHelia

Смежные вопросы