OC课堂笔记->内存管理
2014-10-22 16:42
204 查看
内存管理
Person * p1 = [[Person alloc]init];
[p1 retain];
NSLog(@"%ld",[p1 retainCount]);
[p1 autorelease];
p1 = nil
NSLog(@"%ld",[p1 retainCount]);
//内存中会出现的问题:内存溢出,野指针.
//为了解决他们这些现象我们有两种方案
//1.gc:垃圾回收机制,可以自动判断哪些内存是不再使用的.由系统帮助我们回收
//MRC:手动内存管理,也叫手动引用计数.retaincount;有我们自己判断哪块内存还在使用,同时判断有多少人在使用;当引用计数为0的时候,内存释放,同时指针置空(防止野指针);
//ARC:自动内存管理,也叫自动引用计数.当我们需要引用计数减1(-1)时,由编译器帮我们添加release语句;
//OC提供了垃圾回收机制,但是IOS并未采用,
//MAC OS 10.8之前使用垃圾回收机制,10.8之后弃用;
//关于引用计数的一些方法
//+alloc:开辟内存,设置引用计数为1;
//-retain:使引用计数加1;
//-copy:将内存或对象复制一份,并将复制的内存或对象引用计数置1;
//-release:使引用计数减1;
//-autorelease:使引用计数减1,只不过是在出自动释放池之后,才执行减一操作;
//-dealooc:当引用计数为0时,由系统自动调用,释放空间.
//自动释放池有两种形式:
//第一种:@autoreleasepool{}
//第二种:NSAutoreleasepool *pool = [NSAutoreleasepool alloc]init];[pool release];
//优先使用第一种;
Person * p1 = [[Person alloc]init];
[p1 retain];
NSLog(@"%ld",[p1 retainCount]);
[p1 autorelease];
p1 = nil
NSLog(@"%ld",[p1 retainCount]);
//内存中会出现的问题:内存溢出,野指针.
//为了解决他们这些现象我们有两种方案
//1.gc:垃圾回收机制,可以自动判断哪些内存是不再使用的.由系统帮助我们回收
//MRC:手动内存管理,也叫手动引用计数.retaincount;有我们自己判断哪块内存还在使用,同时判断有多少人在使用;当引用计数为0的时候,内存释放,同时指针置空(防止野指针);
//ARC:自动内存管理,也叫自动引用计数.当我们需要引用计数减1(-1)时,由编译器帮我们添加release语句;
//OC提供了垃圾回收机制,但是IOS并未采用,
//MAC OS 10.8之前使用垃圾回收机制,10.8之后弃用;
//关于引用计数的一些方法
//+alloc:开辟内存,设置引用计数为1;
//-retain:使引用计数加1;
//-copy:将内存或对象复制一份,并将复制的内存或对象引用计数置1;
//-release:使引用计数减1;
//-autorelease:使引用计数减1,只不过是在出自动释放池之后,才执行减一操作;
//-dealooc:当引用计数为0时,由系统自动调用,释放空间.
//自动释放池有两种形式:
//第一种:@autoreleasepool{}
//第二种:NSAutoreleasepool *pool = [NSAutoreleasepool alloc]init];[pool release];
//优先使用第一种;
相关文章推荐
- OC课堂笔记->KVC
- Oc课堂笔记->字符串NSString
- Oc课堂笔记->字典NSDictionary
- oc课堂笔记->属性
- Oc课堂笔记->Block块
- OC课堂笔记->数组NSArray
- <div+css页面布局课堂笔记>11---页面布局网站首页设计实例__终极版(仿csdn首页)
- <div+css页面布局课堂笔记>7---登录和注册界面的实现
- <div+css页面布局课堂笔记>1---div+css对页面布局的优势
- C语言第十一天课堂笔记<详细+注释>
- Cocos2d-x学习笔记(十一)-------->Cocos2d-x的内存管理
- <div+css页面布局课堂笔记>10---页面布局网站首页设计实例__2
- <div+css页面布局课堂笔记>5---与盒子相关的CSS属性第二部分
- C语言第三天课堂笔记<详细+注释>
- <div+css页面布局课堂笔记>2---页面布局的盒子模型
- C语言第六天课堂笔记<详细+注释>
- <div+css页面布局课堂笔记>3---页面布局的盒子模型(IE与其他浏览器区别)
- C语言第七天课堂笔记<详细+注释>
- C语言第一天课堂笔记<详细+注释>
- <div+css页面布局课堂笔记>8---页面浮动设计