黑马程序员技术交流社区
标题:
关于重写init类方法的一个疑问
[打印本页]
作者:
x65396731
时间:
2014-8-12 17:02
标题:
关于重写init类方法的一个疑问
这是视频老师说修改init方法所需要的3步
self = [super init]; //初始化当前对象包括其父类
if (self i= nil)
//保证其内部的指针是指向类的
{
修改成员变量初始化的值
}
return self; //返回修改后的初始化值
我不太理解第二步的作用,既然第一步是做初始化,那应该不会改变其指针的指向,那为什么还要加上这句呢?
另外 self != 0 ;可以写成 self ; 请问这种缩写在哪里可以可以学,C语言计算符关系符的缩写我完全不知道啊。
作者:
cjfire
时间:
2014-8-12 17:33
你这个是在写一个初始化的函数,对吧。你应该把第一步和第二部结合起来看。第一步是调用该类的父类的init方法。而你说的第二步,是判断调用父类的init方法是否成功,如果成功再执行下面的部分。想象一种情况,父类初始化的时候,会向一个URL申请资源,结果没有得到,那么这时候就会得到一个空。
你说的第二个问题,self!=0可以置换为self,你这样想,如果self不等于零成立,那么就执行下面的句子,如果不成立,也就是self为零,那么就不执行下面的句子。判断的本质就是看self是不是0;那你换成self呢,不为零,if得到的判断结果是真,就执行。为零,if得到的假,就不执行。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2