Ios Swift";桥接头.h“;文件不允许我在.swift文件中实例化objective-c类

Ios Swift";桥接头.h“;文件不允许我在.swift文件中实例化objective-c类,ios,objective-c,xcode,swift,xcode6,Ios,Objective C,Xcode,Swift,Xcode6,当X-code尝试自动创建桥接头时,每次都会崩溃,因此我按照说明手动创建桥接头。 (创建一个.h文件,命名为-bridgeing Header.h,导入所有需要的.h文件?) 问题是,当我尝试在包含在该头文件中的.swift文件中实例化一个类时,什么也没有发生(它说该类不存在),而且在桥接头文件中,当我尝试包含它们时,它似乎不会自动完成我的文件名,这让我相信有些东西链接不正确 有人碰到过这个吗?有人知道如何修复它吗?您需要将它添加到目标的生成设置中: 在Xcode中,如果您进入目标的构建设置并向

当X-code尝试自动创建桥接头时,每次都会崩溃,因此我按照说明手动创建桥接头。 (创建一个.h文件,命名为-bridgeing Header.h,导入所有需要的.h文件?)

问题是,当我尝试在包含在该头文件中的.swift文件中实例化一个类时,什么也没有发生(它说该类不存在),而且在桥接头文件中,当我尝试包含它们时,它似乎不会自动完成我的文件名,这让我相信有些东西链接不正确


有人碰到过这个吗?有人知道如何修复它吗?

您需要将它添加到目标的生成设置中:

  • 在Xcode中,如果您进入目标的构建设置并向下滚动,您将发现一个“Swift编译器-代码生成”部分

  • 将“目标-C桥接头”设置为
    -桥接头.h

  • 我不确定“Install Objective-C Compatibility Header”的值是否正确,但它是一个yes/no,所以如果它一开始不起作用,您可以切换它


  • 我试图自己创建一个桥接头,但由于某些原因Xcode不喜欢它。 所以我删除了我的自定义文件,导入了一个OBJC文件,这使得Xcode询问我是否希望它为我创建一个


    我点击“是”,它成功了

    它可以帮助将桥接头的名称及其项目根设置为“MyProject/MyProject bridgeing header.h”,并将其输入Swift编译器编译键“Objective-C bridgeing header”的字符串值中。

    1)创建一个名为“FMDB bridgeing header.h”的文件

    在此文件中键入以下内容: #导入“FMDB.h”

    3) 转到构建设置->Swift编译器-代码生成 -添加到“Objective-C桥接头”:FMDB桥接头.h

    或者如果它被放置在项目的文件夹中:

    FolderName/FMDB桥接头.h

  • 将名为“[your project name]-bridge header.h”的头文件添加到项目中
  • 转到构建设置>构建选项,并将“嵌入内容包含Swift代码”设置为“是”

  • 转到构建设置>链接,并将“@executable_path/Frameworks”添加到运行路径搜索路径


  • 立即构建您的项目!

    “是”似乎很好。这帮助我知道在FMDB不工作时从何处删除桥接头。我遇到了一个奇怪的问题,它试图加载一个未找到的桥接头,因此我删除了该键中的值,它在Xcode 8中工作,而不是在“Swift Compiler-General”中的“代码生成”“成功了。我想知道我是否有objc的A、B、C班。我现在只想把C类转换成swift。现在类C依赖于一个NB,所以它们进入桥接头。虽然类A需要类C,但现在我无法在桥接头中导入-Swift.h,因为桥接头中存在-Swift.h,这会产生明显的错误。除了转换类A和B之外,还有其他解决方案,因为它们是大型类。请尝试退出Xcode并重新打开它。我也有同样的问题:-/您是如何导入ObjC文件的?在构建设置内部或何处?无需执行:“在该文件中键入以下内容:#import“FMDB.h”“我不知道为什么会投反对票,它实际上帮助了我。我创建了一个桥接头,但后来将其移动到项目中的子目录中。项目构建设置没有反映更改,但是这个答案帮助我找到了问题所在。