黑马程序员技术交流社区

标题: 关于重写init方法 [打印本页]

作者:  常洋洋    时间: 2015-5-12 10:26
标题: 关于重写init方法
为什么在重写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. }
复制代码





作者: wodeheimalife    时间: 2015-5-12 10:38
这是必须这么写的一个格式。
作者: cogddo    时间: 2015-5-12 11:39
我觉得,,NSObject类里面有一些所有OC对象初始化所必须的操作或者 属性的赋值,,既然所有OC对象都是他的子类,那就要先初始化它,在初始化子类喽,。。先有父亲再有孩子哦
作者: shenxian88    时间: 2015-5-12 17:32
其实这里你不要去纠结,你只要把这个格式记下来就行了
作者: 好梦留人    时间: 2015-5-12 18:27
记得视频里是说几下这个格式就好·
作者: 649678291    时间: 2015-5-13 08:57
不错,看了
作者: welfarezhang    时间: 2015-5-13 11:07
知道这种格式记住就好
作者: 15578797612    时间: 2015-5-13 11:25
我们现在还不能到达去研究代码内部的一种能力
作者: mony    时间: 2015-5-13 13:12
那个if里不是判断语句,而是赋值语句,就是如果[super init]初始化成功的话,赋值给self,然后继续执行if里面的代码
作者: CornerFly    时间: 2015-5-13 16:15
{:2_31:}我看到这的时候都睡着了,没听太明白




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