黑马程序员技术交流社区

标题: OC中init重写复制 [打印本页]

作者: 葛先生    时间: 2015-3-24 23:51
标题: OC中init重写复制
objective-c中if(self=[super init])这句话实在是太绕了。虽然找到了解释:这里调用父类的构造函数有个规则这里是先将父类实例化,才能实例化子类如果父类实例化失败了 self = nil ,也就无法初始化当前类,父类都初始化不出来,你这个继承于父类的类又还能正常吗? 但是还是一头雾水
作者: 一步一个脚印    时间: 2015-3-25 00:03
首先oc中的根类是NSObject,所有的类都间接或直接继承了它,当你定一个子类时,会继承父类和父类的父类直到NSObject,父类中可能会有实例变量,你实例化的子类对象会继承这些实例变量,必须先初始化父类中的实例变量,所以要调用super init  ,从NSObject一直初始化到某个子类的直接父类,直接父类初始化后会返回初始化好的空间(对象)这个时候子类可以对自己定义的实例变量进行初始化  。over




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