2012年6月10日

objective-C引用计数的使用心得

摘要: Objective-C有不只一种内存管理方式,我这里只讨论引用计数相关内容。1. 在堆上分配对象所有对象(不知道有无例外)都用堆方式分配内存,也就像c++中的new,对象引用都使用指针啦,很统一。2. 指针赋值将一个对象直接赋值给另一个,都是赋值指针,若不做特殊操作,人家释放掉后,你就惨了,野指针。后面重点讨论“特殊操作”3. copy方法obj1 = [obj2 copy];如此使用后,系统为obj1新申请一块内存,拷贝了obj2的内容,以后个不相关了。4. 引用计数每个对象有一个引用计数,当引用计数为0时,对象自动销毁,如下几个操作可以改变引用计数。a,创造对象,引用计数默认为1b,向对象 阅读全文

posted @ 2012-06-10 13:32 景树园 阅读(246) 评论(0) 推荐(0)

objective-c 内存管理&引用计数 浅析

摘要: 此文涉及的内存管理是针对于继承于 NSObject的 Class。一 基本原理Objective-C的内存管理机制与 .Net/Java那种全自动的垃圾回收机制是不同的,它本质上还是 C语言中的手动管理方式,只不过稍微加了一些自动方法。1 Objective-C的对象生成于堆之上,生成之后,需要一个指针来指向它。ClassA *obj1 = [[ClassA alloc] init];2 Objective-C的对象在使用完成之后不会自动销毁,需要执行 dealloc来释放空间(销毁),否则内存泄露。[obj1 dealloc]; 这带来了一个问题。下面代码中 obj2是否需要调用 dea.. 阅读全文

posted @ 2012-06-10 13:26 景树园 阅读(199) 评论(0) 推荐(0)

导航