Objective-C 内存管理机制

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
}
-(NSArray *)Array {
NSArray *arr = [[NSArray alloc] initWithObjects: obj1, obj2, nil]; [arr release]; return arr;
}
-(NSArray *)Arrayຫໍສະໝຸດ Baidu{
NSArray *arr = [[NSArray alloc] initWithObjects: obj1, obj2, nil]; return [arr autorelease];

MyClass *mc = [[MyClass alloc] init];

MyClass *mc = [MyClass createInstance];
-(NSArray *)Array {
NSArray *arr = [[NSArray alloc] initWithObjects: obj1, obj2, nil]; return arr;

管理所有收到autorelease消息的对象 在NSAutoreleasePool对象被释放时,其中所有对 象将收到release消息 主线程中自动产生,次线程需自己创建(多线程编 程必须)


}
-(NSArray *)Array {
NSArray *arr = [NSArray arrayWithObjects: obj1, obj2, nil]; return arr;
}
-(void)setObject:(Sobject *)object { [MainObject autorelease]; //为保证该属性所retain的对象被释放 MainObject = [object retain]; //or copy return; }
王瑞超 2010.6.29

是扩充C的面向对象编程语言 通过提供类定义,方法以及属性的语法,还有其他 可以提高类的动态扩展能力的结构等,扩展了标准 的ANSI C语言 不支持垃圾回收



对象引用计数
◦ 用于标记对象的生命周期
◦ 使用alloc、new、copy、retain方法时,对象的引用计数 加1 ◦ 使用release、autorelease方法时,对象的引用计数减1 或将要减1 -_◦ 对象的引用计数为0时,对象被释放
-(void)setObject:(Sobject *)object { [MainObject release]; //可能导致错误 MainObject = [object retain]; //or copy return; }
-(void)setObject:(Sobject *)object { if (MainObject != object) [MainObject release]; MainObject = [object retain]; //or copy return; }
相关文档
最新文档