A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© hezerongrocky 中级黑马   /  2016-2-21 17:34  /  443 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

@class的使用格式:

@class xxx;
含义:告诉编译器,xxx 是一个类,至于类有哪些属性和方法,此处不去检测;
好处:如果xxx文件内容发生了改变,而不需要重新编译

@class 的使用注意:
1).h  @class  xx;
2)  .m  #import “xx.h”;

@class 的特殊用法: 可以解决循环引用问题


面试题:#import 和 @class 的区别?

作用上的区别:
    #import会包含引用类的所有信息(内容),包括引用类的变量和方法,
   @class 仅仅是告诉编译器有这么一个类,具体这个类里有什么信息,完全不知

效率上的区别:
如果有上百个头文件都#import了同一个文件,或者这些文件依次被#import,那么一旦最开始的头文件稍有改动,后面引用到这个文件的所有类都需要重新编译一遍,编译效率非常低,相对来讲,使用@class方法就不会出现这种问题了。

循环retain 会导致两个对象都会内存泄露

防止方法:
1)让某个对象朵释放一次(注意顺序)
2)推荐的方法:
       一端使用assign, 一端使用retain

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马