1.自动引用计数
在NSObject类的alloc类方法上设置断点,追踪程序的执行。以下列出执行所调用的方法和函数。
+alloc;
+allocWithZone;
class_createInstance;
calloc
各个方法都通过同一个调用_CFDoExternRefOperation函数,调用了一系列名称相似的函数。苹果的实现大概就是采用离散列表(引用计数表)来管理引用计数
通过引用计数表管理引用计数的好处
1.对象用内存块的分配无需考虑内存块头部
2.引用计数表各记录存有内存块地址,可从各个记录追溯到各对象的内存块,方便检查内存泄漏
2.autorelease
NSRunloop每次循环过程中NSAutoreleasePool对象被生成或废弃
NSAutoreleasePool *pool = [ [NSAutoreleasePool alloc]init];
id obj = [ [NSObject alloc] init];
[obj autorelease];
[pool drain]
autorelease 实例方法的本质就是调用NSAutoreleasePool对象的addObject类方法
[NSAutoreleasePool showPools];
会将现在的NSAutoreleasePool的状况输出到控制台