【问题标题】:How to work with Swift file in Objective-C?如何在 Objective-C 中使用 Swift 文件?
【发布时间】:2016-11-24 05:38:07
【问题描述】:

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

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

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

pDatePicker.swift:50:9:一行上的连续声明必须用';'分隔

'open' 的模糊使用。

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

【问题讨论】:

    标签: ios swift exception bridging-header


    【解决方案1】:

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

    演示示例可在 github 上找到。

    https://github.com/hasyapanchasara/UsingSwiftInObjectiveC

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

    #import "projectName-Swift.h"
    

    只有你才能在 swift 代码中访问目标 c 文件。

    参考

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

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

    如果该路径存在问题而不是桥接将无法正常工作,那为什么当您编译 #import "projectName-Swift.h" 时不会生成。

    Download

    下载以上示例项目。

    【讨论】:

    • 不,我没有找到“projectName-Swift.h”如何生成该文件。我正在使用 7.3.1 xcode
    • 那么桥接肯定有问题。检查构建设置 - Objective-C Bridging Header - ProjectName-Bridging-Header.h 有完美的位置。如果该路径存在问题而不是桥接将无法正常工作,那为什么当您编译 #import "projectName-Swift.h" 时没有生成。
    • 但我仍然遇到同样的错误,我没有找到“projectName-Swift.h”。我只是检查了我认为它只是当前位置的位置。
    • 检查我的更新答案,刚刚为您完成了演示,下载并检查正确的配置。
    • 非常感谢。
    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-10-27
      • 2016-04-25
      • 2014-08-11
      • 1970-01-01
      相关资源
      最近更新 更多