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

内存管理

时间:2015-09-02 00:32:53      阅读:154      评论:0      收藏:0      [点我收藏+]

标签:

1全局变量写在- (void)dealloc

2全局变量数组+retain

3方法返回对象中,稍后释放对象,return [xxx autorelease];

 

自动管理关:build setting-> gar ->obc arc ->no

查看保留计数/引用计数retainCount

alloc copy retain  new  递增引用计数+1   //addobject,addsubview…都可以引起引用计数的增加,系统增加不用管。

release  递减引用计数-1  //当引用计数为0的时候被销毁

 

我们可以使一个对象的引用计数增加或者减少;但是系统也可以,系统增加的,系统会自己处理,再减少

虽然输出结果为1,单我们认定为0,这个对象也就处理完成

 

//局部变量的释放是再它的作用域内

//全局变量的 释放再类的dealloc方法中

- (void)dealloc  //本个视图消失加载

{

    [super dealloc];

}

 

为了防止不经意间使用了无效对象,一般再release之后都会清空指针。

悬挂指针:people = nil;

赋新值:

当你想给一个对象重新赋值,必须先释放旧值 [  xxx release]再赋予新值

局部:用类方法创建对象,不需要自己释放。自动释放autorelease

全局:用类方法创建,是一个自动释放的对象,再本方法内可以使用,出了此方法,系统会把它释放

想保留对象用[xxx  retain];

 

别的地方想用,再赋予的时候要retain一份;

 
 

内存管理

标签:

原文地址:http://www.cnblogs.com/abin37/p/4777032.html

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