对象内存管理
内存管理机制
GC:垃圾回收机制
MRC:手动引用计数
ARC:自动引用计数
使用dealloc观察对象的释放
1. 一定不能手动调用
2. 由系统自动调用
3. 当对象被释放的时候调用
4. 一旦对象的dealloc被调用后,这个对象一定不能再使用
5. 可以根据dealloc有没有被调用,确定对象是否被释放
-(void)dealloc{
NSLog(@"Animal dealloc:%p",self);
//在手动引用计数时,必须调用父类的dealloc
[super dealloc];
}
retainCount:引用计数,大于0表示不需要释放
1.alloc创建的对象,引用计数为1
2.retain 引用计数+1
3.release 引用计数-1
4.autorelease 引用计数-1 /每调用一次autorelease就到autoreleasepool里面登记一次,等到autoreleasepool释放或drain时调用release.
注意:字面常量不会被释放,系统的一些不可变对象不会被释放。