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⼀一次.
{
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⼀一次.
相关文章推荐
- iOS内存管理机制及属性的使用
- ios 内存管理机制
- iOS内存管理方式
- iOS开发 各种内存管理权限控制符的区别
- iOS开发学习之内存管理笔记简述
- 2013资料整理-iOS内存管理机制
- iOS 非ARC基本内存管理系列 3-循环retain和@class
- iOS 非ARC基本内存管理系列 5-autorelease方法使用总结
- IOS面试题之内存管理
- 总结一下IOS内存管理
- IOS基础之 (十) 内存管理
- cococs2d-x与ios关于图片内存的管理
- iOS 非ARC基本内存管理系列 2-多对象内存管理(1)
- iOS中怎样管理内存
- 终于明白那些年知其然而不知其所以然的iOS内存管理方式
- iOS管理对象内存的数据结构以及操作算法--SideTables、RefcountMap、weak_table_t-一
- 【iOS开发-35】有了ARC内存管理机制,是否还须要操心内存溢出等问题?——面试必备
- IOS--OC--LessonMermory 内存管理
- iOS 内存管理笔记
- iOS开发系列—Objective-C之内存管理