黑马程序员---autorelease方法_移动开发_编程开发_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 编程开发 > 移动开发 > 黑马程序员---autorelease方法

黑马程序员---autorelease方法

 2015/4/26 11:06:45  孙文君  程序员俱乐部  我要评论(0)
  • 摘要:------Java培训、Android培训、iOS培训、.Net培训、期待与您交流!-------基本用法;1,autorelease方法会返回对象本身2,调用完autorelease方法后,对象的计数器不变2,autorelease会将对象放到一个自动释放池中3,当自动释放池被销毁时,会对池子里面的所有对象做一次release操作autorelease的好处:1》不用再关心对象释放的时间2》不用再关心什么时候调用releaseautorelease的使用注意:1
  • 标签:程序 程序员 方法 ASE
------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! ------- 基本用法; 1,autorelease 方法会返回对象本身 2,调用完autorelease方法后,对象的计数器不变 2,autorelease 会将对象放到一个自动释放池中 3,当自动释放池被销毁时,会对池子里面的所有对象做一次release操作   autorelease的好处: 1》不用再关心对象释放的时间 2》不用再关心什么时候调用release   autorelease的使用注意: 1》占用内存较大的对象不要随便使用autorelease; 2>占用用内存较小的对象使用autorelease,没有太大的影响   错误写法: 1》alloc之后调用了autorelease,又调用了release @autoreleasepool {     Person * p  = [ [ [Person alloc] init]  autorelease]     [ p  release]; } 2》连续调用多次autorelease @autoreleasepool {     Person * p  =[ [ [ [Person alloc] init]  autorelease] release] } 自动释放池: 1》在IOS程序运行过程中,会创建无数个池子,这些池子都是以栈结构存在(先进后出) 2》当一个对象调用autorelease方法时,会将这个对象放到栈顶的释放池   自动释放池的创建方式: 1》IOS5.0之前: NSAutoreleasePool * pool = [[NSAutoreleasePool alloc]  init];   [pool release] ; // [pool drain]; 2>IOS5.0开始 @autoreleasepool    {        }     1,系统自带的方法里没有包含alloc, new , copy,说明返回的对象都是autorelease,如NSString * s = @"adaf"; 2,开发中经常回提供一些类方法,快速创建一个已经autorelease过的对象 1》创建对象时不要直接用类名,一般用self +(id) person {     return  [ [ [self alloc]   init ]   autorelease]; } int main ( ) { @autoreleasepool//必须加池子    {     Person * p =[  [ [Person alloc]   init ]   autorelease];     } } 可以在创建类方法精简Person的初始话: +(id) person {     return  [ [ [Person alloc]   init ]   autorelease]; }
上一篇: Android 多语言 下一篇: windows ruby安装
发表评论
用户名: 匿名