C * c2 = [[C alloc]init];
c2.test1 = @"whatever";
NSLog(@"%@",c2.test1);
[c2 release];
NSLog(@"%lu",(unsigned long)c2.retainCount);
[c2 release];
NSLog(@"%@",c2.test1);
从上面的代码看,存在内存管理的问题。
一个对象通过alloc 创建出来引用计数器是1,release一次计数器减1,
重写dealloc方法,调回super dealloc 。
上面代码第一次release后计算器是0,对象会被释放,在调用release会发生野指针错误,因为访问了一块已经被释放的空间。
|