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

看完构造方法有点疑问,重写构造方法那里
  1. - (id)init
  2. {
  3.     if ( self = [super init] )
  4.     {
  5.         _no = 1;
  6.     }
  7.     return self;
  8. }
复制代码

重写时需要先用父类的init初始化,可是这个判断self也就是[super init]是否为零是什么意思?看看对象是不是空吗?还是看看成员变量是不是0?如果是看成员变量的话,不是[Person new]==[[Person alloc] init]吗?用new方法初始化的对象的成员变量就是0啊!有没有大神来指教一下?

评分

参与人数 1黑马币 +1 收起 理由
星河鹭起 + 1

查看全部评分

3 个回复

倒序浏览
这个意思是,如果非零就说明该对象初始化成功了,可以开始操作成员变量了
不这么写,无非是如果没初始化成功,你白写里面的代码
回复 使用道具 举报
weizhang00 发表于 2014-12-2 23:53
这个意思是,如果非零就说明该对象初始化成功了,可以开始操作成员变量了
不这么写,无非是如果没初始化成 ...

那究竟是对象非零还是成员变量非零啊?
回复 使用道具 举报
彈指っ紅顏老 发表于 2014-12-3 00:25
那究竟是对象非零还是成员变量非零啊?

self就是对象哦,你见过成员变量能用self?
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马