1.import会包含这个类的所有信息,包括实体变量和方法,而@class只是告诉编译器,其后面声明的名称是类的名称,至于这些类是如何定义的,暂时不用考虑,后面会再告诉你。

2.在头文件中,一般只需要知道被引用的类的名称就可以了。不需要知道其内部的实体变量和方法,所以在头文件中一般使用@class来声明这个名称是类的名称。而在实现类里面,因为会用到这个引用类的内部的实体变量和方法,所以需要使用#import来包含这个被引用类的头文件。

3.在编译效率方面考虑,如果你有100个头文件都#import了同一个头文件,或者这些文件是依次引用的,如A–>B, B–>C, C–>D这样的引用关系。当最开始的那个头文件有变化的话,后面所有引用它的类都需要重新编译,如果你的类有很多的话,这将耗费大量的时间。而是用@class则不会。

4.如果有循环依赖关系,如:A–>B, B–>A这样的相互依赖关系,如果使用#import来相互包含,那么就会出现编译错误,如果使用@class在两个类的头文件中相互声明,则不会有编译错误出现。

所以,一般来说,@class是放在interface中的,只是为了在interface中引用这个类,把这个类作为一个类型来用的。在实现这个接口的实现类中,如果需要引用这个类的实体变量或者方法之类的,还是需要import在@class中声明的类进来。

iPhone开发之@Class与#import的区别相关推荐

  1. iphone开发 NSURL中fileURLWithPath和URLWithString的区别

    2019独角兽企业重金招聘Python工程师标准>>> iphone开发 NSURL中fileURLWithPath和URLWithString的区别: 1.我做了如下实验:(摘抄) ...

  2. iPhone开发中的技巧整理(四)

    iphone开发笔记 退回输入键盘 - (BOOL) textFieldShouldReturn:(id)textField{ [textField  resignFirstResponder]; } ...

  3. iphone开发笔记和技巧总结

    在iphone程序中实现截屏的一种方法: //导入头文件   #importQuartzCore/QuartzCore.h //将整个self.view大小的图层形式创建一张图片imageUIGrap ...

  4. ios学习--iphone开发笔记和技巧总结(原址持续更新)

    ios学习--iphone开发笔记和技巧总结(原址持续更新) 分类: ios Object-C2012-04-18 10:16 2716人阅读 评论(1) 收藏 举报 uiviewiphonelist ...

  5. iphone 开发杂文

    退回输入键盘   - (BOOL)textFieldShouldReturn:(id)textField{     [textField resignFirstResponder]; }   CGRe ...

  6. iphone 开发笔记

    iphone 开发笔记 退回输入键盘   - (BOOL)textFieldShouldReturn:(id)textField{     [textField resignFirstResponde ...

  7. iPhone开发学习笔记

    http://blog.csdn.net/huanglx1984/article/details/4325377 Objective-C introduction iphone使用objective ...

  8. iPhone开发进阶(9)--- 用SQLite管理数据库

    博主:易飞扬 原文链接 : http://www.yifeiyang.net/iphone-developer-advanced-9-management-database-using-sqlite/ ...

  9. iPhone开发的一些小技巧

    [转载]iPhone开发的一些小技巧 (2011-10-29 20:13:02) 转载原文 标签: 转载 原文地址:iPhone开发的一些小技巧作者:哈哈 一,修改状态栏: 1.加入[[UIAppli ...

最新文章

  1. BASH 进阶 文件描述符号的使用
  2. Jquery对象的文档处理,CSS和事件
  3. cmake (2)路径指令
  4. C#-自动(也叫隐式)类型转换及规则 018
  5. 表单字段三维数组名_【技术汇】回转式空气预热器温度场三维数值模拟
  6. C# 析构函数(Destructor)和终结器(Finalizer)——托管资源的释放
  7. 三维错切变换矩阵_图像的仿射变换
  8. ICEFaces Note(7)
  9. 100个高质量Java开发者博客 【转】
  10. Java日志框架 -- Logback(Logback入门案例、logback配置(FileAppender、异步日志、拆分Appender、过滤器)、logback-access)
  11. ubuntu全版本安装 NVIDIA显卡驱动、以及重装、卸载
  12. 减轻使用者的从众心理压力 知名社群网站将隐藏赞数
  13. 自我觉察日志——9.17 (为什么老想买东西?)
  14. 实时视频带宽的计算过程
  15. QT笔记- 如何判断窗口小部件是否自动出现(或隐藏)了滑条?
  16. 霍兰德- 职业兴趣测评
  17. 用Winfrom动态生成SQL的insert语句
  18. 算法之路,带你轻松学废算法系列之哈希表
  19. python定向爬虫_Python-定向爬虫的简单使用
  20. go语言零基础教程:第一个程序:HelloWorld

热门文章

  1. 0831 - 每晚放松一刻
  2. linux安装nfs服务器
  3. OOAD理论知识小结
  4. RH Linux 企业5+apache+mysql+php+phpmyadmin的简单配置.
  5. MyEclipse:新导入一个项目时中文乱码
  6. MySQL数据库、数据表和字段字符集查询、修改和配置
  7. 你会想待下去吗?世界上25个最惊险的屋顶
  8. 【SDOI2008】【P1377】仪仗队
  9. 2014年的六级考试即将来临,你们准备好了吗?
  10. 主日--使徒行传--20150419