@class and #import

简介


在 Objective - C 中也使用了“头文件”和“实现文件”来区隔代码,所以在创建类的时候我们要通过@class和#improt 来实现两个类之间的互调。

异同


  • import 会包含当前类的所有信息(实体变量+方法)
    class 只是告诉编译器声明类的名称;
  • if(A,B,C 类种都import 了 D类)这样编译器编译程序的时候就先从 A中先把 D类的.h文件编译一遍,在 B 中又会将 D 类的.h文件再次进行编译,所以会增加编译器编译的时间;
  • if(存在依赖的关系,A 类中 import 了 B 类,B 类 import 了 A 类)这样相互引用,就会造成循环引用的问题,这时候就要用@class 来解决;

用法


例如:
<code>
#improt <Foundataioin/Foundation.h>
@interface Person :NSObject
@property (nonatomic, copy)NSString * name
@property (nonatomic, strong)Man * manPerson;
@end
</code>
因为我们调用了Man这个类,所以我们在类中#import 或者@class 一个类名,这里我们就要用@class,因为在类的调用中没有用到 Man 类中的属性,如果在.m 中有用到 Man 类的属性的话,我们就需要在.m 中进行#import 中进行操作,这样才可以使得编译器编译代码的时候速度更快。

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

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,773评论 19 139
  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 32,137评论 18 399
  • 1.项目经验 2.基础问题 3.指南认识 4.解决思路 ios开发三大块: 1.Oc基础 2.CocoaTouch...
    阳光的大男孩儿阅读 10,474评论 0 13
  • 当我还是个孩童的时候,许多记忆弥足珍贵。年幼时的我在当时一定听过大人们和隔壁邻居谈论时说道:“我家的“猪屎仔”已...
    绅士猫俏皮狗阅读 3,382评论 0 0
  • 夜深无人醒,独自望长空。漫漫前行路,能与几人共?
    休闲岁月aaa阅读 1,085评论 0 0