Objective-C与Swift混编中OC对Swift类视而不见的问题

在一个老的iOS项目中集成了Swift代码,而后在OC中调用Swift类,一直报错,针对自定义Swift类提示了"use of undeclared identifier"错误,费了老鼻子劲才解决这个问题。ios

刚开始一直解决不了,建立了一个Demo项目进行测试却发现没有问题,WTF!objective-c

最后的最后,发现问题竟然是由于我手动建立了一个projectname-Swift.h文件,而这个文件是不该该手动建立的。可是问题是我在Xcode工程中删除了它,仍然会提示上面的错误。swift

根本解决办法是这样的:在Finder对应的文件夹中删除你手动建立的projectname-Swift.h文件。缓存

再来猜想一下缘由,虽然你在Xcode工程中删除了手动建立的projectname-Swift.h,可是在Xcode中可能还有它的缓存。这种状况能够用这个办法来测试一下,在使用#import "projectname-Swift.h"的地方,按住Cmd键,单击projectname-Swift.h访问projectname-Swift.h源文件,若是这个源文件的内容是空的,那么就意味着工程中还使用的是你手动建立的projectname-Swift.h文件。ide

不少文章说要把defines module设置为YES,但好像没有这个必要。测试

相关文章
相关标签/搜索