构建一个Swread框架,引用Objective-C代码

时间:2015-03-02 17:05:33

标签: 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版本是否可以实现,我该如何处理?

感谢。

1 个答案:

答案 0 :(得分:10)

实际上并没有那么复杂......我只是做错了什么。

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

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

然后,在Swift代码中,框架类应该只需执行:

import GoogleMaps

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