我将从头开始写。假设您有一个 Objective-C 项目,现在您想继续使用 Swift 进行项目开发。请遵循以下准则:(这旨在满足您的特定需求)
首先选择添加新文件文件->新建->文件。在此过程中选择您的语言Swift。在此处的最后一步中,系统将提示您Create Bridging Header
。选择:
现在构建您的项目一次(⌘
+B
)。您可能会收到如下错误:
Change your target's minimum deployment to the version that Swift supports. (Example in the below screenshot)
要在 Swift 文件中使用 Objective-C 资源:
现在你已经拥有了一个ProjectName-Bridging-Header.h
文件在你的项目中。如果您想在 Swift 文件中使用任何 Objective-C 类,只需在该桥接头文件中包含该类的头文件即可。就像在这个项目中一样,你有ESP_NetUtil
and ESPViewController
类及其头文件。您希望将它们公开给 Swift,并稍后在 Swift 代码中使用它们。因此,将它们导入到这个桥接头文件中:
再次构建。现在您可以转到您的 Swift 文件。使用 Objective-C 类就像使用 swift 中的任何资源一样。看:
注意:您必须在桥接头文件中公开所有类头(您打算稍后在 Swift 中使用)
要在 Objective-C 文件中使用 Swift 资源:
现在你可能想知道,我已经在 Swift 中成功使用了 Objective-C 资源。反之又如何呢?是的!你也可以做相反的事情。找你的Target->Build Settings->Swift Compiler - General->Objective-C Generated Interface Header Name
。这是您将在 Objective-C 类中使用的头文件Swift
to Objective-C
互操作性。想了解更多请查看here https://www.codementor.io/codementorteam/swift-objective-c-using-2-languages-in-your-project-ucm16ki0l.
现在,在任何 Objective-C 类中,导入该接口标头并在 Objective-C 代码中使用 Swift 资源:
您将从中获得更多的理解苹果官方文档 https://developer.apple.com/library/content/documentation/Swift/Conceptual/BuildingCocoaApps/MixandMatch.html.
您可以查看链接项目的已完成版本here https://bitbucket.org/m-i-n/objective-c-swift-in-same-project with Objective-C
-Swift
互操作性。