黑马程序员技术交流社区

标题: 关于内存管理里面的计数器,求大神解答! [打印本页]

作者: jy02305403    时间: 2014-11-28 18:15
标题: 关于内存管理里面的计数器,求大神解答!

  1. #import <Foundation/Foundation.h>
  2. #import "Person.h"
  3. int main(int argc, const char * argv[]) {
  4.     //1
  5.     Person *p = [[Person alloc] init];

  6.     //当对象计数器归0后会调用一次dealloc方法,也代表这个对象消失,就算用retain也无法返回
  7.     [p release];
  8.    
  9.     p.age = 20;
  10.     NSLog(@"age=%d", p.age);
  11.    
  12.    

  13.     return 0;
  14. }
复制代码

这是我根据视频跟随着敲打的代码,来到这一段,我在调用了[p release]后,计数器应该为0,dealloc的遗言也出来了,这时候对象内存应该消失了,为什么我还可以调用。p.age = 20这个setter方法?并且打印了age=20?

作者: 从今以后    时间: 2014-11-28 18:38
“默认情况下,Xcode是不会管僵尸对象的,使用一块被释放的内存也不会报错。为了方便调试,应该开启僵尸对象监控”
发不了图。。

作者: jy02305403    时间: 2014-11-28 18:56
从今以后 发表于 2014-11-28 18:38
“默认情况下,Xcode是不会管僵尸对象的,使用一块被释放的内存也不会报错。为了方便调试,应该开启僵尸对 ...

谢谢,我忘记了,你一说我就想起来了!




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2