野指针再现,僵尸对象应用!!!这尼玛感觉生化危机啊 操操操
#import <Foundation/Foundation.h>
#import "Dog.h"
int main(int argc, const char * argv[]) {
@autoreleasepool {
//创建一个对象
//对象创建完成以后,默认的所有者有一个,是自己,所以引用计数为1
Dog *byd = [Dog new]; //1
[byd eat]; //
NSLog(@"byd.retainCount = %lu",byd.retainCount);
//如果一个对象已经被释放了,这个对象就称之为僵尸对象
//
[byd release]; //0
// NSLog(@"byd.retainCount = %lu",byd.retainCount); //值已经没有意义了
//这句话默认情况下不报错,
//如果要让他报错,要开启僵尸对象检测
//byd指针也就是野指针
// [byd eat]; //野指针访问
// [byd retain]; //byd 已经是僵尸对象了,不能复生
}
return 0;
}
|