objective-c中if(self=[super init])什么意思

首先说下这里我非常糊涂,创建一个对象直接分配内存初始化不就ok了吗?干嘛还self还[superinit]?搞得我好晕,... 首先说下这里我非常糊涂,创建一个对象直接分配内存初始化不就ok了吗?干嘛还self 还[super init]? 搞得我好晕, 展开
 我来答
斤斤宝贝0dE
2012-09-10 · TA获得超过2168个赞
知道小有建树答主
回答量:712
采纳率:0%
帮助的人:975万
展开全部
self = [super init];

这里调用父类的构造函数
有个规则这里是先将父类实例化,才能实例化子类
如果父类实例化失败了 self = nil ,也就无法初始化当前类,父类都初始化不出来,你这个继承于父类的类又还能正常吗?
goreycn
2012-09-12 · TA获得超过840个赞
知道小有建树答主
回答量:1272
采纳率:0%
帮助的人:861万
展开全部
可以这样理解

父类里面的成员变量初始化工作,可能就是放在[super init]里执行的.

如果你写的子类, 不写成 self = [super init]的话,

可能你在使用父类里的成员变量时,会是一个未被初始化的意外 的值 .
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
褒逸羊清华
2020-05-02 · TA获得超过3797个赞
知道小有建树答主
回答量:3124
采纳率:31%
帮助的人:216万
展开全部
先调用父类的Init
方法,如果调用成功后,self指针会指向一个地址,if(self)表示如果self不是指的空地址,然后再执行其他一些自己的初始化
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式