objective-c笔记:对象初始化

[class new]等价于[[class alloc] init],不过在objective-c中惯例使用后者。

 

alloc除了分配内存外,还顺带初始化为0, BOOL被初始化为NO,int初始化为0,float初始化为0.0,指针被初始化为nil

 

指定初始化函数:类中的某个初始化方法被指派为指定初始化函数。该类的所有初始化方法都使用指定初始化函数执行初始化操作,而子类使用其超类的指定初始化函数进行超类的初始化。通常,接收参数最多的初始化方法是最终的指定初始化函数。

 

在你自己的init初始化方法中,需要调用自己的指定初始化函数或者超类的指定初始化函数。一定要将超类的初始化函数的返回值赋给self,并返回self作为init方法的值。需要注意的是,超类可能会返回一个完全不同的对象。

-(id)init

{

if(self = [super init])

{

// do something

}

return (self);

}