关于.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。

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 136,107评论 19 139
  • ...
    一线星辰阅读 2,187评论 0 0
  • 你的爱似有千万种颜色 蓝色的宁静溢满你的温柔 挣脱梵高而自由的黄色向日葵 神秘黑夜绽放艳红的玫瑰 青草地上静默的白...
    98f1ded3f369阅读 1,778评论 0 0
  • 愿四季变换你不变 愿与你一起走过春夏秋冬,欣赏四季分明的美。
    景景三页阅读 2,890评论 1 1

友情链接更多精彩内容