【问题标题】:@import X; Causes error Could not build module X@import X;导致错误无法构建模块 X
【发布时间】:2016-03-10 16:04:12
【问题描述】:

我有一个定义为模块的自定义框架 TSUI。它同时具有 Objective-C 和 Swift 代码。如果我将它导入到 Objective-C 代码中,如下所示:

#import <TSUI/TSUI.h>

一切正常,但我只能访问 Objective-C 代码。但是,如果我将其导入为:

@import TSUI;

#import <TSUI/TSUI.h>
#import <TSUI/TSUI-Swift.h>

一切编译正常,但在 Xcode 中我收到以下错误:

在框架和应用代码中,我设置了以下构建设置:

  • 嵌入的内容包含 Swift 代码 = YES
  • 允许框架模块中的非模块化包含 = YES
  • 启用模块 = 是

我已尝试清理项目,清理派生数据,但问题不断出现。如果框架不包含 Swift 代码但包含在 @import 而不是 #import 中,它也会出现。目前我认为这是一个错误。

【问题讨论】:

  • 您是否尝试过在导入之前构建项目?
  • 你能创建和上传一个有这个问题的小示例项目吗?

标签: ios objective-c xcode swift module


【解决方案1】:

删除您当前的导入语句 所以项目编译。

构建您的项目。

再次尝试导入。

【讨论】:

    【解决方案2】:

    您的模块有问题。我相信在您的 TSUI 项目中,您需要设置一个模块映射文件。您应该有一个文件,它只导入您想包含在模块中的所有文件。您可以将其命名为 TSUI-umbrella.h。在您的模块映射中,您应该将其设置为您的伞形标题。然后,当您运行 @import(导入模块)时,您将获得正确的编译。另外你可以做

    #import <TSUI/TSUI-umbrella.h>
    

    基本上

    #import <ModuleName/UmbrellaHeader>
    

    【讨论】:

      猜你喜欢
      • 2015-06-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-01-13
      • 1970-01-01
      • 2019-12-18
      • 2017-07-15
      • 2013-07-05
      相关资源
      最近更新 更多