A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© yuanlingqi 中级黑马   /  2014-11-8 19:46  /  1066 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 yuanlingqi 于 2014-11-8 19:52 编辑
  1. //为何对retainCount为0的对象进行release却不会报野指针错误?详见下面代码

  2. #import "Person.h"
  3. #import "Car.h"
  4. @implementation Person

  5. -(void)setAge:(int)age{
  6.     _age = age;
  7. }

  8. -(void)setCar:(Car*)car{
  9.     if (car != _car) {
  10.         [_car release];
  11.         _car = [car retain];
  12.     }
  13.    
  14. }


  15. -(void)dealloc{
  16.     [_car release];
  17.     NSLog(@"年龄为%d的Person 被释放了。",_age);
  18.     [super dealloc];
  19. }

  20. @end
复制代码


2 个回复

倒序浏览
_car在定义的时候没有指向 所以是空指针, OC允许对空指针随便release   
回复 使用道具 举报
yuanlingqi 来自手机 中级黑马 2014-11-9 15:34:27
藤椅
doudou33420 发表于 2014-11-9 08:01
_car在定义的时候没有指向 所以是空指针, OC允许对空指针随便release

学习了
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马