oc——类——初始化

本文介绍了Objective-C中类的初始化过程,包括指定初始化方法(designated initializer)和便利初始化方法(convenience initializer)。讨论了如何使用NS_DESIGNATED_INITIALIZER标记,以及在不同情况下初始化方法的调用顺序和责任。子类需要覆盖父类的指定初始化方法,并确保便利初始化方法最终调用指定初始化方法。总结了四种不同的初始化路线:直接调用指定初始化方法、通过便利初始化方法间接调用、通过父类指定初始化方法和通过父类便利初始化方法调用。
摘要由CSDN通过智能技术生成

概述

iOS 中对象创建是分两步完成:
  • 分配内存
  • 初始化对象数据成员
创建NSObject对象的过程:
苹果官方有一副图片更生动的描述了这个过程:

初始化方法

c++类有构造函数,构造函数负责实例对象初始化,构造函数函数名与类名一致,易识别,且会自动调用
oc类没有构造函数,但有类似构造函数的初始化方法,初始化函数与类名不一致,且不会自动调用
oc类初始化方法特征:
  • instance method
  • Method返回类型为instancetype
  • Method的SEL以init起始
初始化方法分类:
  • 指定初始化方法:designated initializer,以NS_DESIGNATED_INITIALIZER标记
  • 便利初始化方法:convenience initializer,无NS_DESIGNATED_INITIALIZER标记
#ifndef NS_DESIGNATED_INITIALIZER
#if __has_attribute(objc_designated_initializer)
#define NS_DESIGNATED_INITIALIZ
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值