如何创建一个可用的对象?大致有以下2个步骤: <1>调用类方法alloc,分配可用的存储空间 <2>调用对象方法init ,对用分配好的存储空间将对象初始化,例如给各成员变量赋初值 假如有一个Person类,其有2个成员变量:int _age和double weight,创建一个Person类的对象,语法为: Person *p = [Person new]; 其实Person类中的类方法new的实现过程就是上述的2个步骤,以上代码相当于: Person *p = [[Person alloc] init]; 当我们期望对象创建时,成员变量的值为固定值,则需要重写对象方法init。 参考以下代码:
- @interface Person : NSObject
- @property int age;
- @end
- @implementation Person
- - (id)init
- {
- if(self = [super init]) //<1>调用父类的初始化方法,将初始化后返回的对象赋值给self
- {
- _age = 1; // <2>如果self的值不为nil,则将成员变量初始化为我们期望的值
- }
- return self; // <3>将初始化完毕的对象返回
- }
- @end
- int main()
- {
- Person *p = [[Person alloc] init];
- NSLog(@”创建的Person对象p的成员变量_age的值为:%d” , [p age]);
- return 0;
- }
复制代码
以上代码,每次创建出来的Person对象,其成员变量_age都被初始化为1。 重写init方法的3步骤: <1>调用父类的init方法对继承部分进行初始化 <2>对自身特有的部分进行初始化 <3>返回一个id类型的对象,即returnself,将自身返回。
|