Cannot find interface declaration for “类B”,superclass of “类A”

小咪咪 2022-08-20 05:10 32阅读 0赞

项目中需要用到背景修改,之前公司产品是外包给第三方公司做的,这边发现每个Controller里面都写了一套修改主题背景的代码。今天来做优化的时候,除了首页Home的类继承自定义的RootViewController的时候提示交叉编译的错误,其他的所有的Controller都是正常的。
(说明:Root是我定义的一个基类, Home是首界面的一个类。)

提示交叉引用的错误信息类似如下:
项目运行时候出现:“Can not find interface of declaration for ‘A’,superclass of ‘B’”
提示错误截图:
交叉引用错误

这边对了其他的类的继承代码,以及Home类的继承代码,发现并二异,所以也就是说明在HomeViewcontroller这个类的时候发生了交叉引用的错误。
问题在于Home中import了Root.h,而Root又引用了Home,这就构成了交叉引用。不过编译器却给出了一个让人混淆不清的提示“找不到父类接口”。
但是这边截图如下,根本没发现import代码:(详见截图)
基类Root截图:
基类截图

Home类截图
Home

发现原因所在,不是在头文件中包含的。
因为基类和Home类在很多界面都需要包含调用,所以都提取到了PCH文件当中。这边将PCH文件截图,以及注意事项图示:
错误截图

解决方法:(注意截图中的注意事项)
先import 基类,然后import Home。如果这个两个类引用的顺序不是基类在前,肯定会报错。

发表评论

表情:
评论列表 (有 0 条评论,32人围观)

还没有评论,来说两句吧...

相关阅读