【问题标题】:Using Swift on Objective-C file in custom Swift framework在自定义 Swift 框架中的 Objective-C 文件上使用 Swift
【发布时间】:2018-07-17 03:57:55
【问题描述】:

我想使用 Swift 创建一个自定义框架。框架中有一些 Swift 文件,然后我创建一个名为 A(A.h 和 A.m)的新 Objective-C 文件。

在这个 Objective-C 文件中,我想使用另一个 Swift 类,所以我在 A.m 文件的顶部添加了以下导入语句

#import "<My framework target name>-Swift.h" 

在构建框架时,我收到错误提示“-Swift.h”未找到。

我尝试了一些解决方案,但仍然卡住了

  • 我添加了一个桥接头文件,但由于自定义框架不允许桥接头而失败。
  • 我在 Build Settings 上将“Defines Module”设为 YES,但似乎没用。
  • 将 '$(CONFIGURATION_TEMP_DIR)/Product Name With Spaces.build/DerivedSources' 添加到标题搜索路径没有帮助。(关注此线程 iOS - 'MyProject-Swift.h' file not found when running Unit Tests for Swift ,@gagarwal 的答案)

  • 我也尝试将import语句移动到伞头,但出现同样的错误。

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

【问题讨论】:

    标签: ios objective-c swift frameworks


    【解决方案1】:

    #import 语句的格式是在应用程序目标的 Objective-C 文件中包含桥接头的方式。

    在框架目标内的 Objective-C 文件中,要导入 Swift 接口,您的导入语句需要如下所示:

    #import <FrameworkProductName/FrameworkProductModuleName-Swift.h>
    

    另外,请记住,在框架目标中,除了必要的@objc 之外,您还必须创建希望从 Swift publicopen 访问的类和属性.

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-10-19
      • 1970-01-01
      • 2014-11-17
      • 2017-01-27
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多