黑马程序员技术交流社区

标题: 求解惑:关于内存管理中点语法的使用 [打印本页]

作者: 崔石炫    时间: 2014-10-16 17:18
标题: 求解惑:关于内存管理中点语法的使用
在一个对象a中组合了另外几个对象b、c、d,
重写a的dealloc方法时,
  1. - (void)dealloc
  2. {
  3.     [self.b release];
  4.     [self.c release];
  5.     [self.d release];
  6. }
复制代码

这样操作的话,引用计数器的值就不对,这3行代码会让b、c、d的引用计数器都+1,造成内存泄露。
如果代码改成:

  1. - (void)dealloc
  2. {
  3. [_b release];
  4. [_c release];
  5. [_d release];
  6. }
复制代码
这样的话,引用计数器的值才跟预想的一样,对象会被正常回收。

作者: 崔石炫    时间: 2014-10-16 17:19
这里面点语法调用的不是get方法吗?怎么会让引用计数器的值+1呢?




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