Ios 构建Objective-C框架:从Swift访问模块时无法在路径处找到头文件?

Ios 构建Objective-C框架:从Swift访问模块时无法在路径处找到头文件?,ios,objective-c,swift,xcode,Ios,Objective C,Swift,Xcode,简介 我希望在XCode中创建一个Objective-C框架,供我们的Swift应用程序使用,但在构建并导入框架目标定义的模块(据我所知,Swift需要一个模块)时遇到了一个问题,即在其路径上找不到头文件,但是,当简单地编译框架时,所述路径是好的 示例 例如:在我的Objective-C框架中,我有两个类。类A和类B。A是B的超类,所以我自然会在B的头文件中包含A的头文件,以便声明它们之间的关系,如下所示: //Inside file: ClassA.h_________________ @i

简介

我希望在XCode中创建一个Objective-C框架,供我们的Swift应用程序使用,但在构建并导入框架目标定义的模块(据我所知,Swift需要一个模块)时遇到了一个问题,即在其路径上找不到头文件,但是,当简单地编译框架时,所述路径是好的

示例

例如:在我的Objective-C框架中,我有两个类。类A和类B。A是B的超类,所以我自然会在B的头文件中包含A的头文件,以便声明它们之间的关系,如下所示:

//Inside file: ClassA.h_________________

@interface ClassA : NSObject

   //Some implementation

@end

//Inside file: ClassB.h ________________

#include "src/models/ClassA.h"
@interface ClassB: ClassA

//Some implementation

@end
现在,当运行仅定义我的框架的目标时,一切看起来都很好,并按预期运行。在尝试从Swift应用程序中导入模块时,上述
#include“src/models/ClassA.h”
语句无法解决。 另一方面:我的Swift应用程序使用了另一个类似的框架,虽然更小,但没有文件夹结构

当前状态

我为确保找到标题“应”而采取的步骤:

  • 我的Swift应用程序目标取决于Objective-C框架
  • 我的框架设置为在其构建设置中定义一个模块
  • ClassA和ClassB的头文件都在XCode的构建阶段选项卡下标记为public
  • 在我的框架伞形头中,我导入了ClassA和ClassB的头,如下所示:
  • //名为MyFramework.h的头文件内部
    #进口
    #进口
    
    现在我意识到Swift访问模块可以访问ClassA和ClassB,因为它们直接位于框架/模块生成的Headers文件夹中,这就是为什么伞头中的导入语句不再是这些文件在我的项目中通常具有的文件路径。 但是,当我的Swift应用程序开始解析ClassB的头文件并读取包含ClassA.h的include语句时,就会抛出一个错误,无法找到头文件

    问题

    我如何才能做到这一点,或者至少从访问此框架模块的Swift应用程序中使用ClassA和ClassB

    顺便说一句,我需要文件夹路径,因为我有多个名为“ClassA”和“ClassB”的头文件(在本例中我们称之为“ClassA”和“ClassB”)


    更详细的信息有帮助:这是一个非常大的java框架,通过使用“j2objc”将数千个文件翻译成Objective-C。因此,一些文件共享相同的名称。

    如果将
    ClassB.h
    中的
    #import
    更改为
    #import
    ?@sbooth,它会找到该文件。然而,这只适用于没有文件共享相同名称的情况,比如“ClassA.h”,这也是我通过path访问它们的原因。
    //Inside header file called MyFramework.h
    #import <MyFramework/ClassA.h>
    #import <MyFramework/ClassB.h>