从Pod导入Objective C标头? 十分简单!

我是一名新的iOS程序员。 我距Swift已有3年了,所以我在iOS编程中的第一门语言是Swift。 尽管那里有很多库可以帮助我开发应用程序,但它不像Swift库那么简单,Swift库仅在“ pod安装”完成后无缝地导入其模块。

为了更清晰,在这里我谈论的是如何从通过Cocoapods注入的库中导入Objective C标头。 轻松将库手动注入到Swift项目中。 您可以将其文件从外部文件夹拖放到您的项目中,Xcode将为您提供为您生成Objective C桥接标头的选项。 或者,您可以创建一个新的Objective C头文件“ .h”,并将其命名为: -Bridging-Header.h

在我们开始之前,我想使它成为一个简单的教程,而不仅仅是有经验的程序员记住某些东西的方式。 这意味着,虽然实现起来很短,但是one line code ,但是我想分享一下我如何通过反复试验来理解这一点。

因此,像往常一样,让我们​​创建一个新的Xcode项目。 随意命名,忽略核心数据,UI测试和单元测试。 就像您每天一样,如果您每天制作一个新应用程序。

然后,我需要您至少知道如何使用Cocoapod。 如果您不知道Cocoapod是什么,那么花一点时间来了解iOS开发者社区为我们提供的如此出色的工具。 您将要访问其官方网站,该网站还提供了我们找到所需图书馆的方式。 前往http://cocoapods.org

新,我想您已经掌握了Cocoapod。 然后,我们将使我们的项目使用将从Cocoapod获取的外部库。 转到项目根文件夹,如果您不知道什么是根文件夹,则只需转到包含我们的。xcodeproj文件的文件夹。

在终端上运行pod init

Podfile Pod完成后,让我们打开Podfile声明要导入的Pod库。

让我们找到一个仅用Objective C编写的好的库。我的意思是,这个库在Swift中还没有或者没有。 我们有MagicalRecord,它将帮助我们管理CoreData的使用。

通过将pod 'MagicalRecord','~> 2.3'放在…行的#Pods下pod 'MagicalRecord','~> 2.3'将MagicalRecord声明为Podfile。

保存Podfile,然后在终端上运行pod install 。 我们将获得由pod发送的一堆日志,以告知我们项目中的当前操作。 等到完成。

现在,我们在根文件夹中具有。xcworkspace和.xcodeproj。 如果我们使用Cocoapod作为第三个库管理器,则每次处理项目时都希望使用.xcworkspace。 如果您想替代Cocoapod,我们可以选择Carthage和Swift Package Manager。

打开.xcworkspace。 我们的项目保持不变,只不过我们在Xcode导航器窗格中注册了两个项目。 一个是我们自己的项目,第二个是Pod项目。 这就是为什么我们需要使用xcworkspace来始终加载Pod项目的原因。

现在,让我们在继续之前构建项目。 为什么我们需要这样做? 就我自己而言,我想确信该项目没有因显示红色错误而中断。

到目前为止,我们已经完成上述步骤,但是当项目在Swift中时,库是ObjectiveC。 如何在我们的项目中使用它? 是的,我们需要使用桥接头。

让我们制作目标C头文件并按我在第一段中所写的那样命名它。 -Bridging-Header.h

接下来做什么?

让我们通过Bridging Header将MagicalRecord导入到项目中,以便Xcode可以隐式转换要以Swift方式调用的接口。

#import

而已。 您已完成所有步骤,以使用从Swift项目中的Cocoapod获取的Objective C库。 我建议您构建项目,如果发生某些错误,只需删除“派生数据”,清理CMD+SHIFT+K并分析CMD+SHIFT+B您的项目。 希望能帮助到你。

接下来,我们将有更多高级主题,敬请期待!