在书中,我看到如果子类覆盖超类的方法,我们可能有
self = [super init];
首先,这应该在子类的init
方法中完成吗?
二、不知道为什么调用不只是
[super init];
? 我的意思是,在调用init
时,内存已经分配了alloc
(我认为子类的名称[Foobar alloc]
在哪里Foobar
。所以我们不能只调用[super init]
来初始化成员变量吗?为什么我们必须获取的返回值init
并分配to self
? 我的意思是,在调用之前[super init]
,self
应该指向一个有效的内存分配卡盘......那么为什么要再次为 self 分配一些东西呢?
(如果分配,不会[super init]
只返回self
现有值吗?)