将 Objective-C 框架(CocoaPod)导入 Swift?
Posted
技术标签:
【中文标题】将 Objective-C 框架(CocoaPod)导入 Swift?【英文标题】:Import Objective-C Framework (CocoaPod) into Swift? 【发布时间】:2016-04-05 20:29:56 【问题描述】:我正在尝试将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
【问题讨论】:
是的,我是。如果有帮助的话,libjingle_peerconnection 就是 Objective-C。 我没有;我不得不放下它,现在工作忙得不可开交。我会回到它当我可以。可能会退回到 Objective-C。 【参考方案1】:桥
1.创建一个 xxx-Bridging-Header
使用您选择的方法将桥接头添加到您的项目中,最简单的方法是创建一个 .m
文件并在此对话框中回答 创建桥接头:
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)
另一个例子是here。
► 在GitHub 上查找此解决方案,在Swift Recipes 上查找更多详细信息。
【讨论】:
但正确的方法是在 swift 文件中导入 pod 的模块名称(import xxxx),而不必创建桥接头,只要 pod 文件启用了 use_frameworks,我相信那里libjingle_peerconnection pod 有问题以上是关于将 Objective-C 框架(CocoaPod)导入 Swift?的主要内容,如果未能解决你的问题,请参考以下文章
使用 Swift 构建 Cocoapod 并依赖于 Objective-C 框架
如何将 cocoapod 框架用于本地创建的另一个 cocoapod?
在使用 MagicalRecord CocoaPod 初始化 +initialize 时,Objective-C 无法识别的选择器