码迷,mamicode.com
首页 > 其他好文 > 详细

内存管理

时间:2015-11-02 19:08:06      阅读:153      评论:0      收藏:0      [点我收藏+]

标签:

 
     a、alloc  retain  new   copy  会让计数器加1 ,release 会让计数器减1。
     b、dealloc 方法用于销毁对象,收回内存。其和 alloc 分配内存对应。dealloc方法不能被直接调用,而是由系统在销毁对象时调用。retain 和 release 对应。
     c、影响引用计数的方法: + alloc   -retain  -copy   -release    -autorelease
     d.自动释放池与自动管理不一样。
     e.dealloc不能直接调用,而是由系统在销毁对象时使用。
     f.当一个对象的引用计数器为0时,那么它将被销毁,内存被系统回收
     g. MRC与ARC选择需要ARC的文件双击,并在输入框中输入:-fobjc-arc,如果不要ARC则输入:-fno-objc-arc

 

#import <Foundation/Foundation.h>

#import "Student.h"

int main(int argc, const char * argv[]) {

  

    Student *s=[[Studentalloc]init];

    [s retain];

    NSAutoreleasePool *pool = [[NSAutoreleasePoolalloc] init];//创建一个自动释放池

    //如果想要给一个对象发送autorelease消息,必须将下面的代码写在创建自动释放池和销毁池之间

    [s autorelease];

    //只有当自动释放池release时,才会将池里面的对象进行一次release

    [pool release];

    NSLog(@"%zi",s.retainCount);

    [s retain];

    //自动释放池,当超出大括号之后,其包含的对象自动release,发送autorelease消息的代码需要放到大括号里

    @autoreleasepool{

        [s autorelease];

    }

    NSLog(@"%zi",s.retainCount);

    return 0;

}

内存管理

标签:

原文地址:http://www.cnblogs.com/lcl15/p/4930849.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!