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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

©  常洋洋 中级黑马   /  2015-5-12 10:26  /  1373 人查看  /  9 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

为什么在重写init方法的时候要调用父类的init方法?[super init];并且返回的就是当前对象?

这个如何解释?

  1. - (id)init
  2. {
  3.     if ( self = [super init] )
  4.     { // 初始化成功
  5.         _age = 10;
  6.     }
  7.    
  8.     // 3.返回一个已经初始化完毕的对象
  9.     return self;
  10. }
复制代码




9 个回复

倒序浏览
这是必须这么写的一个格式。
回复 使用道具 举报
我觉得,,NSObject类里面有一些所有OC对象初始化所必须的操作或者 属性的赋值,,既然所有OC对象都是他的子类,那就要先初始化它,在初始化子类喽,。。先有父亲再有孩子哦
回复 使用道具 举报
其实这里你不要去纠结,你只要把这个格式记下来就行了
回复 使用道具 举报
记得视频里是说几下这个格式就好·
回复 使用道具 举报
不错,看了
回复 使用道具 举报
知道这种格式记住就好
回复 使用道具 举报
我们现在还不能到达去研究代码内部的一种能力
回复 使用道具 举报
mony 中级黑马 2015-5-13 13:12:36
9#
那个if里不是判断语句,而是赋值语句,就是如果[super init]初始化成功的话,赋值给self,然后继续执行if里面的代码
回复 使用道具 举报
{:2_31:}我看到这的时候都睡着了,没听太明白
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马