黑马程序员技术交流社区

标题: objective-c中if(self=[super init]) [打印本页]

作者: 葛先生    时间: 2015-3-24 23:55
标题: objective-c中if(self=[super init])
这句话是中=两侧是赋值还是等于啊?个人认为是等于就好理解了。但是赋值的话就一头雾水了
作者: 一步一个脚印    时间: 2015-3-25 00:10
=是一种操作符,意思是赋值。==是比较操作符,如果2侧的数据相等,就返回真(1),如果不相等就返回假(1)。self=[super init],表示调用父类的初始化方法,调用完毕后,返回一个已经初始化到直接父类的内存空间或者说对象,然后赋值给本类对象的实例(self),如果【super init】执行不成功,会返回nil,nil赋值给self,这个时候self=nil,这个表达式的值为左值即self的值,为nil。所以if()就执行不了。
作者: tzp123    时间: 2015-3-25 00:17
回答好专业
作者: 佩玉鸣    时间: 2015-3-25 00:26
同学习了




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