分享

【iOS系列】

 quasiceo 2015-03-03

【iOS系列】-autorelease的作用

内存管理原则(配对原则):只要出现了new,alloc,retain方法,就要配对出现release,autorelease

1:对象存入到自动释放池中,当这个池子被销毁的时候他会对池子中所有的对象进行一次release操作。 

2:autorelease 加入几次,就会被释放几次

3:不管你这个对象时在@autoreleasepool 之内创建的还是在之外创建的,只要你在池子中调用了autorelease那么这个对象就会被放入到池子中

4:autorelease的作用域:是代码块结束。

@autoreleasepool {
       
  } 

ARC机制: ARC,不用程序员在去管理内存

1.强指针 Strong:只要有强指针指向一个对象,那么系统就不会回收该对象

2.弱指针 weak:只要没有强指针指向对象,系统立即回收该对象,-弱指针不影响,对象被回收

//默认情况下,所有的指针都是强指针类型

//ARC机制 strong 对象,手动内存管理的retain关键字,(一定能够都是应用在对象类型变量上)

//ARC机制中的 weak 对象手动内存管理的assign关键字,(一定能够都是应用在对象类型变量上)

//ARC机制下 基本数据类型的@property参数使用,与手动内存管理完全一致@property (nonatomic,assign)int age;

//当出现类循环应用的时候,只需要把一方面的Strong引用改为weak,并且在.h文件中使用@class 类名的方式,通知.h文件类的存在

附:

1:项目中ARC与非ARC共存:

在project-->Targets-->Build Phases-->Compile Sources选择要对非ARC代码(双击即可)

加上参数:

-fno-objc-arc

2:把项目改为非ARC

project-->Targets-->Build Settings-->AppleLLVM6.0 - Language - Objective C

或者在输入框中输入language查找较为方便

作者:Darren

微博:@IT_攻城师

github: @Darren90

出处: http://www.cnblogs.com/fengtengfei/

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多