如何在我的Swift项目中使用Objective-C项目

Kri*_*ofe 9 xcode objective-c storyboard uiviewcontroller swift

注意:我知道如何从Swift调用Objective-C代码,但我不知道如下,

我是ios的新手.我想在我的项目中使用这个EsptouchForIOS的Demo.演示是在OC中编写的,它有一个故事板和控制器.我想知道如何在我的swift项目中集成演示,并在我的快速项目中使用该故事板和它的控制器.

nay*_*yem 11

我会从一开始就写作.假设您有一个Objective-C项目,现在您想继续在Swift中开发项目.遵循以下准则:(这意味着您的具体需求)

首先选择从File-> New-> File添加一个新文件.在此过程中,选择您的语言为Swift.在这里的最后一步,将提示您Create Bridging Header.选择:

桥接标题创建

现在构建您的项目一次(?+ B).您可能会收到如下错误:

iOS SDK版本错误消息

将目标的最小部署更改为Swift支持的版本.(以下截图中的示例) 更改部署目标

要在Swift文件中使用Objective-C资源:

现在ProjectName-Bridging-Header.h你的项目中有一个文件.如果要在Swift文件中使用任何Objective-C类,只需在该桥接头文件中包含该类的头文件即可.如在此项目中,你有ESP_NetUtilESPViewController阶级和他们的头文件了.您希望将它们暴露给Swift并稍后在Swift代码中使用它们.所以在这个桥接头文件中导入它们:

在Bridging Header中导入Objective-C头文件

再次建立.现在你可以转到你的Swift文件了.并使用Objective-C类,就像在swift中使用任何资源一样.看到:

Swift中使用的Objective-C类

注意:您必须在该桥接头文件中公开所有类头(您打算稍后在Swift中使用)

要在Objective-C文件中使用Swift资源:

现在您可能想知道,我已成功使用Swift中的Objective-C资源.对面怎么样?是! 你也可以这样做.找到你的Target->Build Settings->Swift Compiler - General->Objective-C Generated Interface Header Name.这是您将在Objective-C类中使用的头文件,SwiftObjective-C实现任何互操作性.要了解更多,请点击此处.

Objective-C生成的接口标题名称

现在在任何Objective-C类中,导入该接口头并在Objective-C代码中使用Swift资源:

在Objective-C中导入和使用Swift资源

您将从官方Apple文档中获得更多理解.

您可以检出你链接的项目的制定版本在这里Objective-C- Swift互操作性.