关于.h相互import的问题

image.png

image.png

如图所示,当我们Father类与Son类分别在.h相互,并定义了相互的一个属性,Father类定义了Son类的一个属性,Son类定义了Father类的一个属性,编译器报了不能识别Father类和Son类的错误。
这是为什么呢?
原因就在于,Father类在声明的时候定义了一个Son类,Son类在声明的时候定义了一个Father类,导致了循环定义,所以编译器报了无法识别的错误。
如何解决这个问题呢,这时就可以引入@class关键字。分别在Father类和Son类用@class Son和@class Father告诉编译器我们有Father和Son这个类,如图


image.png

image.png

此时,我们就可以编译通过了。
其实,我们提倡在.m文件中Import .h文件,因为每次已修改h文件时,所有import该h文件都需要重新在编译,大大加长了编译的时间。所以我们更提倡在h文件使用@class 关键字而在m文件import。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容