【问题标题】:Why additional #import in bridging header failed in swift?为什么桥接头中的附加#import 快速失败?
【发布时间】:2014-11-02 13:53:34
【问题描述】:

在我通过 CocoaPods 向我的测试项目添加新的依赖项之前,我已经添加了一个 C 头文件 ('wahoo.h') 并通过一个桥接头文件 "wahoo-Bridging-Header. H”。测试应用程序可以毫无问题地编译和运行。

然后我在我的项目中添加了一个新的依赖项“STHTTPRequest”。您可以在此处查看文件列表:

如果我添加了这一行:

#include <STHTTPRequest/STHTTPRequest.h>

编译失败并显示此错误消息:

我尝试了一些替代方案,但都失败了:

#include "STHTTPRequest.h"

#import "STHTTPRequest.h"

显然我在一个项目中不能有多个桥接头文件。如何解决此导入问题?

编辑如果我将头文件从Pods 复制到SO1 并将#include "SO1/STHTTPRequest.h" 添加到桥接头,我可以解决这个问题。这不是一个理想的解决方案。

如何自动复制头文件?或者,如何使Pods 中的头文件可供SO1 访问?

【问题讨论】:

  • 如果你#include "STHTTPRequest/STHTTPRequest.h"能用吗?
  • STHTTPRequest.h在同一个工作区的另一个项目中,你试过项目导航器中文件所在的路径吗? <Pods/Pods/STHTTPRequest/STHTTPRequest.h>
  • @Antonio 那行不通,因为文件路径在<>
  • @ViktorLexington:这就是我在我的 swift 项目中看到的 - 我正在使用几个 pod - 但看起来它们是可以互换的,因为我刚刚尝试用 <> 替换 "" 和它在两种情况下都可以编译
  • @ViktorLexington 抱歉没用

标签: swift cocoapods bridging-header xcode6-beta7


【解决方案1】:

您需要告诉 Xcode 在哪里查找您在桥接头中列出的头文件。找到Search Paths 部分,更改Header Search Paths 的项目级设置,为Pods 目录添加一个recursive 条目。现在应该是Pods/**

在桥接头中包含:

#include <STHTTPRequest/STHTTPRequest.h>

或者因为递归搜索路径:

#include <STHTTPRequest.h>

【讨论】:

    【解决方案2】:

    您应该添加以下标题搜索路径: "${PODS_ROOT}/Headers/STHTTPRequest"

    【讨论】:

      【解决方案3】:

      我在“搜索路径/用户标题搜索路径”下的项目的构建设置中添加了“Pods/Headers/Public”作为递归条目。

      然后我可以使用标准导入格式:-#import "AFNetworking/AFNetworking.h"

      【讨论】:

        【解决方案4】:

        这行得通:

        #include <STHTTPRequest.h>
        

        【讨论】:

        • 将 ${PODS_ROOT} 添加为递归,然后它将开始工作
        【解决方案5】:

        如果你在 Objective c 中的 pod 库在这种情况下你需要像这样导入类 -

        @import STHTTPRequest;

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2014-11-24
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2017-02-27
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多