码迷,mamicode.com
首页 > 其他好文 > 详细

22-oc构造方法基本概念

时间:2016-03-04 21:01:24      阅读:220      评论:0      收藏:0      [点我收藏+]

标签:

构造方法

 在OC中init开头的方法, 我们称之为构造方法

 

构造方法的用途

构造方法的用途: 用于初始化一个对象, 让某个对象一创建出来就拥有某些属性和值

 

如何实现构造方法

重写init方法, 在init方法中初始化成员变量

 


 

重写init方法

 

重写init方法必须按照苹果规定的格式重写, 如果不按照规定会引发一些未知的错误

必须先初始化父类, 再初始化子类

必须判断父类是否初始化成功, 只有父类初始化成功才能继续初始化子类

返回当前对象的地址

- (instancetype)init

{

    // 1.初始化父类

    // 只要父类初始化成功 , 就会返回对应的地址, 如果初始化失败, 就会返回nil

    // nil == 0 == 假 == 没有初始化成功

    self = [super init];

    // 2.判断父类是否初始化成功

    if (self != nil) {

        // 3.初始化子类

        // 设置属性的值

        _age = 6;

    }

    // 4.返回地址

    returnself;

}

 


 

 

注意子类构造方法中一定要使用super调用父类的方法

 

自定义构造方法

自定义构造方法就是自定义一个init方法

 

有时候我们需要在创建某个对象的时候,让对象的某些属性就具有值,这时候就需要传入一些参数给对象的属性,为了满足这个需求,就需要自定义构造方法

 

自定义构造方法的格式

一定是对象方法

一定返回id/instancetype

方法名称一定以init开头

- (instancetype)initWithAge:(int)age;

 


 

自定义构造方法在继承中的表现

 

自己的事情自己做,属于谁的属性就由谁来进行操作

父类的属性交给父类的方法来处理,子类的方法处理子类自己独有的属性

 

自定义构造方法在子类,如何调用的父类构造方法的

 子类在重写自定构造方法时,一般使用super调用父类的构造方法,先让父类将父类的属性进行初始化

- (instancetype)initWithAge:(int)age andName:(NSString *)name andNo:(int)no

{

    if (self = [super initWithAge:age andName:name]) {

        _no = no;

    }

    returnself;

}

 


 

22-oc构造方法基本概念

标签:

原文地址:http://www.cnblogs.com/wc-Home/p/5243212.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!