ios - 引用 Objective-C 代码构建 Swift 框架

标签 ios objective-c xcode swift ios-frameworks

我正在开发一个用 Swift 编写的 iOS 项目,我想从常规“app”项目中取出一些类,并将其捆绑到一个可重用的 Swift 框架中(并可能在 Github 上公开提供)并通过 Cocoapods)。

我遇到了问题,因为框架似乎没有 Objective-C 桥接头文件,但为了编译我的框架代码,我需要引用几个 Objective-C 类(在本例中:Google Maps iOS SDK ).

我还在我的框架项目中添加了 GoogleMaps.framework 作为链接库,但是我如何从 Swift 代码中“导入”它?

使用当前的工具和 Swift 版本这甚至可能吗?我应该如何进行?

谢谢。

最佳答案

实际上并没有那么复杂......我只是做错了一些事情。

首先,该设置不需要桥接 header :Google Maps iOS SDK 作为常规 .framework 文件提供,因此开发语言对其在 Swift 中的导入方式没有影响. Apple 在文档中明确提到它:https://developer.apple.com/library/ios/documentation/Swift/Conceptual/BuildingCocoaApps/MixandMatch.html , “导入外部框架”。

这就像将框架添加到项目设置的“链接二进制文件与库”部分一样简单。不要忘记添加依赖库和框架(在 GoogleMaps.framework 的例子中,有很多)。

然后,在 Swift 代码中,框架类应该可以通过以下方式简单地使用:

import GoogleMaps

没有桥接 header ,没有处理“非模块化 header 等”。错误。

关于ios - 引用 Objective-C 代码构建 Swift 框架,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28815487/

相关文章:

iphone - 从 superView 中删除 UIView

ios - 在没有 pod 的情况下导入 AFNetworking

ios - 将 NSTimer 的 fireDate 之前的时间加倍

ios - 有没有办法在我的代码中找到不能在以前版本的 iOS 上运行的方法?

xcode - 为什么 SKNode 在 SpriteKit 游戏中对触摸没有反应?

ios - 如何释放全局变量的内存?

IOS:向后移动两个 View

ios - collectionview global header 不会将单元格向下推而是保持在顶部

ios - 在 View Controller 之间传递数据

ios - 如何防止 iOS 应用程序 Hook theOS 或其他