黑马程序员技术交流社区

标题: self=[super init] 是什么意思 [打印本页]

作者: gzf201314    时间: 2015-1-21 08:48
标题: self=[super init] 是什么意思
本帖最后由 gzf201314 于 2015-1-21 21:52 编辑

self=[super init] 这个东西它是赋值还是?
作者: 枫煠    时间: 2015-1-21 09:52
要看你的self是继承谁
如果是继承NSObject你的super就是NSObject,

因为self一开始都是nil,
必须先赋值给它,
而每一个不管是Foundation还是UIKit的物件,都有init的方法
所以self=[super init]
是赋给他父类别的值
作者: 〆﹏、结局ゞ    时间: 2015-1-21 10:54
=号就是赋值
作者: 勋少    时间: 2015-1-21 13:31
个人愚见
init : 初始化对象,其实就是一个对象方法。
super : 直接调用父类的方法
self : 代表当前调用此方法的对象或类
这句出现在重写init方法中。重写构造方法的目的:为了让对象创建出来,成员变量就会有一些固定的值。
self = [super init]; 首先调用父类的init构造方法,将对象内的成员变量和其它属性进行初始化,然后赋给self当前代表的对象。初始化成功就相当于此对象内部拥有了成员变量和其它属性,拥有了成员变量你才可以对成员变量进行赋值。从而达到重写构造方法的目的。




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