构造方法
我们创建一个对象的时候一般喜欢直接调用一个类方法,比如有一个Person类,我们为这个Person类创建对象一般是直接这样[Person new];其实new是NSObject中的一个类方法,这个new方法中是先调用了alloc方法,alloc方法也是一个类方法,作用是创建这个类的对象,再将这个对象的指针返回;再调用创建的对象的对象方法init,作用是初始化创建的对象的属性,然后返回这个已经被初始化的对象。
比如: Person *p1 = [Person new];
完全等价于:
Person *p1 = [[Person alloc] init];
init方法叫做构造方法,它是定义于NSObject类中的一个对象方法,这个方法主要就是初始化所有的属性,基本类型属性初始化为0,非OC类型属性初始化为NULL,OC类型属性初始化为nil。因此,在默认情况下,我们创建一个对象,初始化完毕后,这个对象的属性都是有默认值的。
但是,如果我们想创建一个对象时对象的属性的默认值不是0、NULL、nil的时候,我们应该重写构造方法