自动释放池autoreleasepool
来源:互联网 发布:12寸windows平板 编辑:程序博客网 时间:2024/05/21 07:53
对象存入到自动释放池中,当这个池子被销毁的时候,他都会对池子中的所有的对象进行一次release操作
1:怎么把对象存到池子中
//自动释放池,大括号代表池子的作用域,可以自己随意创建
//只有在自动释放池的作用域中调用对象的autorelease方法才能够正确地将对象放入到池子中
@autoreleasepool{
Person *p = [Person alloc]init]; //不管这个对象是在autorelease之内创建的,还是在之外创建的,只要你在池子中调 用了autorelease方法,这个对象就会被放入到池子中
[p autorelease];//autorelease的方法的作用只是将对象放入到池子中,然后返回一个self,并不会使retainCount-1。 autorelease的方法必须在池子中,一个对象只能加入一次。
对象加入到哪个autoreleasepoll,就在哪个autoreleasepool结束后retainCount-1
}//代表池子将要被销毁,对池子中的所有的对象进行一次release操作
2:autorelease应用
》1:如果在方法中创建一个对象,最好初始化为nil,防止出现野指针错误,如
-(Food *)chiefMakeFood
{
//1
Food *food = nil;//可写成 Food *food = [Food alloc]init];
//0
//[food release];//会发生野指针错误
[food autorelease];//
return food;
}
》2:给外界提供一个快速获得当前对象 的快捷方法,是类方法
+(Chief *)chief
{
Chief *chi = [[self alloc]init]; //self:谁调用就指向谁
[ chi autorelease];
return chi;
}
在 @autoreleasepool{
Chief *chi = [Chief chief];
Food *food = [chi chiefMakeFood];
}
NSString *name = [NSString stringWithFormat:"%@",@"啦啦啦"];//都是autorelease
- 自动释放池autoreleasepool
- 自动释放池 (autoReleasePool)
- 自动释放池autoreleasepool
- @autoreleasePool 自动释放池
- ios自动释放池(autoreleasepool)
- ios自动释放池相关,autoreleasepool;
- 刀哥多线程自动释放池autoreleasepool
- Objective-C自动释放池AutoreleasePool详解
- Autoreleasepool自动释放池与内存相关
- @autoreleasepool 创建自动释放连接池(内存管理)
- 自动释放池的前世今生 ---- 深入解析 autoreleasepool
- 关于@autoreleasepool的性能测试及手动释放自动释放池
- 关于@autoreleasepool的性能测试及手动释放自动释放池
- [Objective-C] 自动释放池(Autoreleasepool)--拆迁队的外援
- Objective-C的自动释放池(autoreleasepool)、静态方法快速创建对象
- Cocos2d-x中的引用计数(Reference Count)和自动释放池(AutoReleasePool)
- 《Cocos2d-x中的引用计数(Reference Count)和自动释放池(AutoReleasePool)》读后感
- Cocos2d-x中的引用计数(Reference Count)和自动释放池(AutoReleasePool)
- SQL SERVER 2008 R2 远程备份数据库
- C# int和byte的位移相互转换
- nagios利用NRPE监控CPU、负载、磁盘IO
- Android功能自动化之MokeyRunner
- 强连通分量(kosaraju)
- 自动释放池autoreleasepool
- 黑马程序员——JAVA基础------反射
- 莫比乌斯反演
- 2015 多校联赛 ——HDU5325(DFS)
- Android基础_数据存储二_SharedPreferences存储
- Java 内部类实现原理简单分析
- HDU 2829 Lawrence (斜率优化DP)
- linux shell 判断文件是否存在等符号
- MIPS 指令