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可以根据需要在其余位置导入,或者它的先决条件的集合需要每次都包含在它上面(我想这与我现在正在做的事情不同)?
根据我迄今为止的经验,为了在 Swift 中使用 Objective-C 类,我只是将那些 .h 文件包含在我的文件中,-Bridging-Header.h而对于需要在 Objective-C 代码中使用的 Swift 类,我将这些文件包含-Swift.h在这些 .m 文件中。
我对这种未知类型没有任何问题。我对 Swift 类的所有引用都包含在 .m 文件中。但是,如果您需要在 .h 文件中引用 Swift 类,那么您应该只进行前向声明@class MySwiftClass。
| 归档时间: |
|
| 查看次数: |
2123 次 |
| 最近记录: |