----------------------
ASP.Net+Unity开发
、
.Net培训
、期待与您交流! ----------------------
1.autorelease的基本用法
1> 会将对象放到一个自动释放池中
2> 当自动释放池被销毁时,会对池子里面的所有对象做一次release操作
3> 会返回对象本身
4> 调用完autorelease方法后,对象的计数器不变
2.autorelease的好处
1> 不用再关心对象释放的时间
2> 不用再关心什么时候调用release
3.autorelease的使用注意
1> 占用内存较大的对象不要随便使用autorelease
2> 占用内存较小的对象使用autorelease,没有太大影响
4.错误写法
1> alloc之后调用了autorelease,又调用release
2> 连续调用多次autorelease
5.自动释放池
1> 在iOS程序运行过程中,会创建无数个池子。这些池子都是以栈结构存在(先进后出)
2> 当一个对象调用autorelease方法时,会将这个对象放到栈顶的释放池
6.自动释放池的创建方式
1> iOS 5.0前
2> iOS 5.0 开始
---------------------- ASP.Net+Unity开发 、 .Net培训 、期待与您交流! ----------------------
循环retain
1.@class的作用:仅仅告诉编译器,某个名称是一个类
@class Person; // 仅仅告诉编译器,Person是一个类
2.开发中引用一个类的规范
1> 在.h文件中用@class来声明类
2> 在.m文件中用#import来包含类的所有东西
3.两端循环引用解决方案
1> 一端用retain
2> 一端用assign
- #import <Foundation/Foundation.h>
- @class Person; //告诉编译器Person是一个类
- @interface Card : NSObject
- @property (nonatomic, assign) Person *person; //用assign参数声明person
- @end
- #import "Card.h"
- #import "Person.h"
- @implementation Card
- - (void)dealloc
- {
- NSLog(@"Car被销毁了");
- // [_person release]; //因为person是用assign声明的,所以person的计数器不变,也不需要release
- [super dealloc];
- }
- @end
1.autorelease的基本用法
1> 会将对象放到一个自动释放池中
2> 当自动释放池被销毁时,会对池子里面的所有对象做一次release操作
3> 会返回对象本身
4> 调用完autorelease方法后,对象的计数器不变
2.autorelease的好处
1> 不用再关心对象释放的时间
2> 不用再关心什么时候调用release
3.autorelease的使用注意
1> 占用内存较大的对象不要随便使用autorelease
2> 占用内存较小的对象使用autorelease,没有太大影响
4.错误写法
1> alloc之后调用了autorelease,又调用release
- @autoreleasepool
- {
- // 1
- Person *p = [[[Person alloc] init] autorelease];
- // 0
- [p release];
- }
2> 连续调用多次autorelease
- @autoreleasepool
- {
- Person *p = [[[[Person alloc] init] autorelease] autorelease];
- }
5.自动释放池
1> 在iOS程序运行过程中,会创建无数个池子。这些池子都是以栈结构存在(先进后出)
2> 当一个对象调用autorelease方法时,会将这个对象放到栈顶的释放池
6.自动释放池的创建方式
1> iOS 5.0前
- NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
- [pool release]; // [pool drain];
2> iOS 5.0 开始
- @autoreleasepool
- {
- }
---------------------- ASP.Net+Unity开发 、 .Net培训 、期待与您交流! ----------------------
本文介绍了Objective-C中的内存管理技巧,包括如何使用@class声明类、解决循环引用问题的方法、autorelease的正确使用及其注意事项。
998

被折叠的 条评论
为什么被折叠?



