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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 会长大的小牛 中级黑马   /  2015-11-21 21:33  /  975 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

  class 的使用
@class 类名   作用?  
表示告诉编译器这是一个类 不需要进去检查类中的属性与方法
     #import 类名.h与@class的区别
            1)作用:
@class 类名  表示告诉编译器这是一个类 不需要进去检查类中的属性与方法
#import  作用是替换头文件里面的内容
            2)效率:
@class     但是要在.m文件中引入类的头文件   头文件编译的时候不会重新编译引入类中的内容只会在运行的时候进行编译 能提高系统运行的效率

       @class 解决循环引用问题
1,当两个类互相调用的时候,采用其中一个参数将retain 换成 assign  但是换成assign参数的类在dealloc重写方法中不能将另一个类release.
2,如果不实用上面那种方法就会造成两个类创建的对象的计数器都是1(因为没有执行dealloc方法,所以也没有执行另一个对象的release)  而造成内存泄露,所以还要在释放其中一个类中的对象.

     autorelease的原理?

file:///var/folders/fr/vw5hgn6n7cvgv3mbfh3wsr3w0000gn/T/WizNote/0c65dc94-8468-4404-86bf-5c8a4bf9e69b/index_files/364285c8-c059-4f18-b480-70d1561d677a.png

  在栈区的上面加入一个自动释放池.在释放池结束的时候对释放池里面的每一个对象发送一条release消息.
autorelease的使用?
     autoreleasepool{
       这里放创建的对象.
}
    autorelease使用的注意事项:

file:///var/folders/fr/vw5hgn6n7cvgv3mbfh3wsr3w0000gn/T/WizNote/0c65dc94-8468-4404-86bf-5c8a4bf9e69b/index_files/99b9ba02-1fe8-4975-a94b-b89b09661135.png
      autorelease的应用场景:
如何快速创建一个对象
  • -(intencetype)person{
  •      return  [[ [self alloc init autorelease];
  • }

ARC 是IOS  5.0出来的特性    ARC是编译器特性
      instancetype与ID的区别
instancetype 能够检测 返回值的类型与接收指针的类型是否一致.

2 个回复

倒序浏览
路过,顺便学习一下,谢谢
回复 使用道具 举报
加油啊     
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马