Objective-C中创建对象的方法

Objective-C 创建对象需通过 alloc 以及 init。alloc的作用是分配内存,init 则是初始化对象。 init 与 alloc 都是定义在 NSObject 里的方法,父对象收到这两个信息并做出正确回应后,新对象才创建完毕。以下为范例:

1
MyObject * my = [[MyObject alloc] init];

在 Objective-C 2.0 里,若创建对象不需要参数,则可直接使用 new

1
MyObject * my = [MyObject new];

这仅仅是语法上的精简,效果完全相同。

若要自己定义初始化的过程,可以重写 init 方法,来添加额外的工作。(用途类似 C++ 的构造函数 constructor)

1
2
3
4
5
6
- (id) init {
if ( self=[super init] ) { // 必须调用父类的 init
// do something here ...
}
return self;
}