我们alloc
之前总是init
在Objective C中,然后在写方法的时候init
,为什么我们不先启动它呢?alloc
super
- (id) init {
if(self = [super init]){
//init iVars
}
return self;
}
我们alloc
之前总是init
在Objective C中,然后在写方法的时候init
,为什么我们不先启动它呢?alloc
super
- (id) init {
if(self = [super init]){
//init iVars
}
return self;
}
分配子接口时,其大小包括父接口的大小。它们不是单独的对象,而是组合在一起的。'super' 必须被初始化,以便它可以准备它的数据成员。然后你的对象初始化它的成员。例如,假设您有一个自定义引用计数接口,需要将“refCnt”初始化为 1。然后您的接口基于该接口。这意味着您的接口的分配大小是引用计数接口的大小+您的特定贡献的大小。(例如,引用计数接口中的 'int refCnt' 和接口中的 'int x' 表示 sizeof(your interface)==8~。)因此,分配只需要发生一次。然后,初始化“super”(在这种情况下为引用计数接口),因此“refCnt”将为 1。