将Objective-C框架(CocoaPod)导入Swift?

9
我试图将 libjingle_peerconnection 框架导入我的 Xcode 项目中,但是在 Swift 源文件中我无法通过 import RTCICEServer 导入 Objective-C 头文件。我尝试使用头文件等方法,但还是出现了问题。请问我做错了什么?
# 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


是的,我是。如果有帮助的话,libjingle_peerconnection 是 Objective-C。 - LeviXC
我还没有开始,工作现在非常忙碌,我不得不放下它。等我有时间了再回来看看。可能会回到Objective-C。 - LeviXC
1个回答

10

桥接

1. 创建 xxx-Bridging-Header 文件

按照您选择的方式向项目添加桥接头文件,最简单的方法是创建一个单一的 .m 文件,然后在此对话框中回答创建桥接头文件:

Create Bridging Header

2. 在桥接头文件中引用您的 Pod

将您的文件包含进去:

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

一旦在桥接头文件中,您无需在Swift中导入Obj-C类,可以直接使用这些类:

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

这里描述了另一个例子,点击此处查看。


► 在GitHub上找到此解决方案,并在Swift Recipes中获取更多详细信息。


但正确的方法是在Swift文件中导入pod的模块名称(import xxxx),而无需创建桥接头文件,只要pod文件启用了use_frameworks,我认为libjingle_peerconnection pod存在问题。 - JAHelia

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接