22-oc构造方法基本概念
Posted wc&Home
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了22-oc构造方法基本概念相关的知识,希望对你有一定的参考价值。
构造方法
在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构造方法基本概念的主要内容,如果未能解决你的问题,请参考以下文章