我想在我的项目中使用EsptouchForIOS的演示文稿。该演示文稿是用OC编写的,它有一个故事板和控制器。我想知道如何将演示文稿集成到我的Swift项目中,并在我的Swift项目中使用该故事板及其控制器。
我将从最开始开始写。假设您在Objective-C中有一个项目,现在想要在Swift中继续开发项目。请按照以下指南操作:(这适用于您的特定需求)
首先选择从文件->新建->文件添加新文件。在此过程中,选择您的语言为Swift。在这里的最后一步,您将被提示创建桥接头文件
。选择它:
现在构建您的项目一次(⌘
+B
)。您可能会收到如下错误:
将您的目标最小部署更改为Swift支持的版本。(示例在下面的屏幕截图中)
现在您已经在项目中有一个ProjectName-Bridging-Header.h
文件。如果您想在Swift文件中使用任何Objective-C类,则只需将该类的头文件包含在此桥接头文件中即可。例如,在此项目中,您拥有ESP_NetUtil
和ESPViewController
类以及它们的头文件。您希望将它们暴露给Swift并稍后在Swift代码中使用它们。因此,请在此桥接头文件中导入它们:
再次构建。现在您可以转到Swift文件。并像使用任何资源一样使用Objective-C类。见:
注意:您必须在桥接头文件中公开所有的类头文件(您打算在Swift中稍后使用)
现在您可能会想,我已经成功地在Swift中使用了Objective-C资源。反之呢?是的!您也可以做相反的事情。找到您的Target->Build Settings->Swift Compiler - General->Objective-C Generated Interface Header Name
。这是您将在Objective-C类中用于任何Swift
到Objective-C
互操作性的头文件。要了解更多信息,请查看此处。
现在,在任何一个Objective-C类中,导入该接口头文件并在Objective-C代码中使用Swift资源:
您可以从官方苹果文档中获得更多理解。
您可以查看链接项目的已解决版本 此处,具有
Objective-C
-Swift
互操作性。
我从未尝试过在Swift项目中使用Objective-C。但是,我通常会在我的Objective-C项目中使用Swift类。我通常遵循苹果开发者网站上的这些指示 https://developer.apple.com/library/content/documentation/Swift/Conceptual/BuildingCocoaApps/MixandMatch.html。
ESPAppDelegate.h, ESPDataCode.h, ESPTouchDelegate.h
在您的桥接中导入一个头文件,您想在Swift代码中使用它。假设在您的Swift代码中,您想要触摸代理ESPTouchDelegate
,那么请写:#import "ESPTouchDelegate.h"
getValue
。
这是在 Swift 项目/文件中使用/访问的。
同样地,您可以在桥接文件中导入任意数量的文件(源文件头文件),并在 Swift 中使用相同的文件(源代码)。