Xcode 9 OC与Swift混编 编译错误

我在工程中用了一些 Swift 的代码, 导致了一些问题, 在这里记录一下, 因为我的工程是轻度使用, 所以只遇到了2个问题, 如果有别的问题, 可以一起讨论.

failed to emit precompiled header

现象: 在 OC 代码中引用 Swift 代码, 需要#import "ProductName-Swift.h", 升级之后会报failed to emit precompiled header的错误.

解决: 在Build Settings 中, 搜索 precomplile找到Precompile Prefix Header设置为YES

Expected a type

现象: Swift 的代码中使用了OC 的代码, 因此在Bridging-Header.h#import "XXX.h", 在这个类中, 提示了上面的错误, 但是去掉之后, 我的 OC 代码可以编译通过的.

解决: 我在 OC 代码中使用了CGFloat, 结果报错了, 我估计是 Swift 中去除了CGFloat类型, 所以导入的时候报错了, 目前我暂时吧CGFloat改成了 float, 编译通过, 后续我再找找为什么.

另外: Swift4.0发布了, 到时候我会再更新一下变动..

推荐阅读更多精彩内容

  • 前言: Swift语言出来后,可能新的项目直接使用Swift来开发,但可能在过程中会遇到一些情况,某些已用OC写好...
    疯狂的电脑阅读 1,166评论 0 8
  • 1.背景 外包项目(OC)交接完毕,需要把另一个swift的项目的部分(很多)页面加入到这个外包项目中。有两种解...
    蓝摇扼剑阅读 1,758评论 0 1
  • swift 语言出来后,可能新的项目直接使用swift来开发,但可能在过程中会遇到一些情况,某些已用OC写好的类或...
    wzf_taker阅读 1,330评论 0 2
  • 概述 利用runtime特性实现iOS项目的组件化开发,是由@casatwy大神提出来的,在他的博客中具体介绍...
    Mr杰杰阅读 976评论 2 9
  • 疯狂的背后有着不为人知的泪水 坚强的微笑藏着满目疮痍的伤口 黑夜里的一丝星光 山丘上的寂静向往 有多少人在漆黑一片...
    七月无伤阅读 24评论 0 0