关闭

oc中的 if(self=[super init])

367人阅读 评论(0) 收藏 举报
分类:

对父类初始化时

if(self=[super init]) 

语句颇有疑惑


故搜寻了一番,下面总结下各路牛人的答案:


这里不是判断self与[super init]是否相等(并不是 if(self=[super init])!),而是判断是否可以成功初始化。
[super init]:父类初始化成功的话,通过=给self,这样self成为一个非空对象,整个来说即非false(非NO)。
于是也就变成了:

if ( !false )

{
//成功初始化后执行的代码


如果init失败 self则为空 if条件为假 于是if段内语句不执行

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:9304次
    • 积分:255
    • 等级:
    • 排名:千里之外
    • 原创:16篇
    • 转载:3篇
    • 译文:0篇
    • 评论:4条
    文章分类
    最新评论