Xcode 6 Swift + Objective-C构建问题 - 由于导入顺序导致的未知类型?

Tom*_*ley 6 xcode objective-c swift

我发现构建一个混合的Swift/Obj-C iOS应用程序以避免在将类转换为Swift后出现构建错误非常具有挑战性.

这是与Swift文档中非常简短的段落有关的问题:

如果在Swift代码中使用自己的Objective-C类型,请确保在将Swift生成的头导入要从中访问Swift代码的Objective-C .m文件之前导入这些类型的Objective-C头.

首先,虽然文档相当明确有关导入-Swift.h文件到.m文件,有很多时候是从现在基于在斯威夫特代码类类型的引用.h对象-类的文件,所以我最终不得不进口-Swift.h.h大部分的文件时间.与文档相矛盾似乎很奇怪,但我不知道这些标题会如何构建,到目前为止大部分时间都有效.

当生成的-Swift.h文件本身包含编译器错误时,会出现真正的问题

未知的类型名称'SomeObjCClass'

通过这些错误的唯一方法似乎是确保在-Swift.h文件之前达到所述类,正如文档所示,但无法弄清楚如何确定构建的顺序我发现自己导入各种Obj -C生成头之前的整个项目标题,直到我得到一个工作版本.这不是一个很好的方法来解决这个问题,但我不知道正确的方法.

我如何确定-Swift.h首次包含标题的位置,以便我可以获得在其上方导入的所有必需的Obj-C类,然后就-Swift.h可以根据需要在其余位置导入,或者它的先决条件的集合需要每次都包含在它上面(我想这与我现在正在做的事情不同)?

tet*_*ive 0

根据我迄今为止的经验,为了在 Swift 中使用 Objective-C 类,我只是将那些 .h 文件包含在我的文件中,-Bridging-Header.h而对于需要在 Objective-C 代码中使用的 Swift 类,我将这些文件包含-Swift.h在这些 .m 文件中。

我对这种未知类型没有任何问题。我对 Swift 类的所有引用都包含在 .m 文件中。但是,如果您需要在 .h 文件中引用 Swift 类,那么您应该只进行前向声明@class MySwiftClass