您的位置:首页 > 移动开发 > IOS开发

IOS-内存管理

2014-04-12 11:02 190 查看
- (void)dealloc
{
NSLog(@"租车行奉命回收车");
//一个类的dealloc方法,需要调用
父类的dealloc
//所有代码都要卸载
在[super dealloc]之前

//永远不要手动调用它;
[super dealloc];
}

////出现的问题1.内存泄漏 2.内存过渡释放

////内存管理
: 手动管理(MRC)
自动管理(ARC)
--------垃圾回收是给MAC用的

////引用计数
是指拥有这块内存的个数 有多少的指针指向该内存

////alloc 0->1

////-retain +1的意思

////-copy(原来的不变
新开辟的内存和以前的一样 然后引用计数0->1
和 alloc差不多)

////

////-release是减少一个引用指向

////-autorelease
延迟释放

//// 7.0之后都是新建工程自动默认都是ARC;

//// 在all和combine中更改自动

//// student * stu = [[student alloc] init];

//// //打印当前对象的引用计数
使用-retainCount方法

//// NSLog(@"当前的引用计数%lu",[stu retainCount]);

//// [stu retain];//对当前对象的引用计数+1;这个指针怎么得到

//// NSLog(@"当前的引用计数%lu",[stu retainCount]);

//// [stu retain];//对当前对象的引用计数+1;这个指针怎么得到

//// NSLog(@"当前的引用计数%lu",[stu retainCount]);

//// [stu copy];

//// [stu retain];//对当前对象的引用计数+1;

//// [stu release];//对当前对象的引用计数-1;

//// NSLog(@"当前的引用计数%lu",[stu retainCount]);

//// [stu autorelease];//当前不-1
在未来某个地方引用计数-1;

//// NSLog(@"当前的引用计数%lu",[stu retainCount]);

////----------------------------------

//// 1.对象内存的所有权的指针才能够release改变引用计数;

//// alloc retain copy 都能使对象获得内存的所有权

//// release 和 autorelease都能使对象放弃内存的所有权

//// 2.有创建就有回收
有+1就有-1

//// 3.引用计数的概念

//// 4.在一个方法/类中,内存d引用计数要保持平衡。

//// 5.dealloc方法
在对象的引用计数为0时系统强制调用;
用于回收内存

//// 6.属性的内存管理
对象类型的属性,需要在dealloc中释放一次

// 7.自动释放池
负责释放池子范围内所有呗标记为autorelease的对象 @autoreleasepool{}

// 8.构造器的内存管理

// 在返回这个对象的时候,使用autorelease

//1.有创建就必须有释放 !

//! 2.⽤用引⽤用计数
标识 拥有对象有所有权的
拥有者(指针)的个数!

//! 3.使⽤用alloc retain copy
增加引⽤用计数 使⽤用release autorelease减少引⽤用计数!

//! 4.只有拥有对象所有权的拥有者
才能对对象使⽤用内存管理代码!

//! 5.在⼀一个类/⽅方法中,⼀一个对象的引⽤用计数必须保持平衡,有+1就有-1!

//! 6.当⼀一个对象的引⽤用计数被减为0时,系统会⾃自动调⽤用对象的dealloc⽅方法!

//! 7.属性的内存管理:
对象类型的属性,需要在dealloc⼿手动释放⼀一次!

//! 8.自动释放池: autoreleasepool的作⽤用机制:自动释放池负责管理所有在
池⼦子范围内被标 记为autorelease的对象,
并在 自动释放池
结束时对 池⼦子中所有的对象release⼀一次!

//! 9.构造器的内存管理:
因为构造器返回的对象需要被外界使⽤用,所以需要对它进⾏行延迟释
放,即对返回的对象标记autorelease!

//! 10.容器的内存管理 :
容器类 会对所有加入到自身中的对象 retain⼀一次,用来保持对这些
对象的所有权. 当这些对象被移除出容器时,容器会自动放弃对象的所有权,即release⼀一次.
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: