当前位置:   article > 正文

关于OC与Swift混编过程中 “xxxx-Swift.h”未找到的问题_oc调用swift找不到swift文件

oc调用swift找不到swift文件
关于OC与Swift混编过程中 “xxxx-Swift.h”未找到的问题

在对OC与Swift混编中,加了3个target:
在这里插入图片描述
但是在混编过程中,某两个Target 提示找不到 “xxxxx-Swift.h”
在网上找了很多资料,说“xxxx-Swift.h”名字必须与工程名一样,于是乎加了3个预编译宏,区分:

#if TPELD_Enterprise
#import TPELD_Enterprise-Swift.h"
#elif TPELD_Prerelease
#import "TPELD_Prerelease-Swift.h"
#else 
#import "TPELD_Company-Swift.h"
#endif
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

这几个宏定义,是在build Setting 里面,如下图:
在这里插入图片描述
只有在切换到TPELD_Enterprise后才能正常编译,否则,都提示找不到-Swift.h文件

找资料找了很久,总结出两个问题,在此记录一下:

  1. 在Swift里,貌似这个预编译if else指令不太管用,都不能进入到 elif判断
  2. 在排查问题后发现生成的-Swift.h文件名不对,如下图
    在这里插入图片描述
    解决方法
    分别在三个Target中,找到 Objective-C Generated Interface Header Name,统一都修改为TPELD_Company-Swift.h,然后去掉上面一堆繁琐的预编译判断,只留下#import TPELD_Company-Swift.h,也就是说在每一个Target中,都去强制生成TPELD_Company-Swift.h文件,不以工程名判断,这样就能顺利的通过编译,而且也可以区分不同的Target了。
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家自动化/article/detail/223882
推荐阅读
相关标签
  

闽ICP备14008679号