如何使用 Objective-C 中的 Swift 文件?

How to work with Swift file in Objective-C?

我想使用一个用 Swift 编写的第三方库,但我在 Objective-C 环境中工作。怎么做?到目前为止我所做的是:

  1. 将第三方库拖放到我的项目中。
  2. 它要求我点击是的桥接头。
  3. 在构建设置中 defines Modules 两者都没有 yes
  4. 产品模块名称显示为 $(PRODUCT_NAME:c99extidentifier)。我也尝试过使用我的项目名称。

现在我收到很多如下错误:

pDatePicker.swift:50:9: Consecutive declarations on a line must be separated by ';'

Ambiguous use of 'open'.

我收到大约 50 到 60 条与上述错误相同的错误。我的错误在哪里?有人可以帮助我吗?

确保您在设置中的 swift 版本与此库使用的版本相同;如果不行,自己翻译试试,或者设置Use Legacy Swift Version 为YES

您能在您的项目中看到 projectName-Swift.h 文件吗?

演示示例可在 github.

上获得

https://github.com/hasyapanchasara/UsingSwiftInObjectiveC

如果是,那么希望您在 Objectice C .m 文件中导入了#import "projectName-Swift.h"?

#import "projectName-Swift.h"

那么只有您可以使用 swift 代码访问 objective c 文件。

参考

https://developer.apple.com/library/content/documentation/Swift/Conceptual/BuildingCocoaApps/MixandMatch.html

  • 签入构建设置
  • Objective-C 桥接头
  • ProjectName-Bridging-Header.h 位置完美。

如果该路径存在问题,那么桥接将无法正常工作,这就是编译 #import "projectName-Swift.h" 时未生成的原因。

Download

下载上面的示例项目。