美文网首页
初始化器

初始化器

作者: 方方1307007 | 来源:发表于2016-02-28 11:38 被阅读0次

初始化器用于初始化对象实例或类型

对象初始化器: -(id)init 可以重载多个

类型初始化器:+(void)initialize 只能有一个

析构器用于释放对象拥有的资源,无返回值的函数

对象析构器-(void)dealloc 只能有一个

没有类型析构器

alloc是一个类方法

如何查看类库?按什么键?点击

类对象在堆上分配内存

初始化器对象实例时,init通常与alloc搭配使用

alloc所做的事情

1.在堆上分配合适大小的内存

2.将属性或实例变量的内存置0

init所做的事情

1.调用父类初始化器[super init](前置调用)

2.初始化当前对象实例变量(在初始化器内部,注意使用实例变量,不要使用属性)

拷贝属性?

new相当于调用alloc/init的无参数版本

类初始化器initialize负责类型级别的初始化

子类的initialize会自动调用父类的initialize(前置调用)

initialize在每个类使用之前被系统自动调用,且每个进程周期中,只被调用一次

对象析构器dealloc负责释放对象拥有的动态资源

1.ARC将自动对对象属性引用计数减持

2.手工释放不受ARC管理的动态内存,如maclloc分配的内存

3.手工关闭非内存资源,如文件句柄,网络端口

dealloc由ARC根据对象引用计数规则,在释放对象内存前自动调用,无法手工调用

子类的dealloc会自动调用父类的dealloc(后置调用)

相关文章

  • Swift的初始化

    一、初始化器 指定初始化器 1、指定初始化器是主要的初始化器,每个类至少有一个指定初始化器。2、默认初始化器总是类...

  • Swift5.1学习随笔之初始化器

    初始化器 类、结构体、枚举都可以定义初始化器(init) 类有2种初始化器:指定初始化器、便捷初始化器 指定初始化...

  • GeekBand OC 5. 初始化器与析构器

    初始化器(初始化) 对象初始化器:-(id) 类型初始化器:+(void) 析构器(释放) 对象析构器:-(voi...

  • 初始化和析构笔记(极客班)

    初始化器分为: 便捷初始化器 主初始化器 辅助初始化器 new等同于[ [super init] alloc] ;...

  • swift初始化器

    初始化器 类、结构体、枚举都可以定义初始化器 类初始化器 类有2种初始化器:指定初始化器(designated i...

  • C++新特性之带有初始化器的if和switch语句

    不带初始化器的if语句 带有初始化器的if和switch语句 带有初始化器的if: 带有初始化器的switch语句...

  • 认识Swift系列13之对象初始化

    Swift中初始化器: 指定初始化器(designated initializer) 便捷初始化器(conveni...

  • 十二、初始化

    初始化 类、结构体、枚举都可以定义初始化器 (本章主要讲类的初始化) 类有2种初始化器 指定初始化器 便捷初始化器...

  • Swift初始化相关内容

    初始化 初始化器 1、类、结构体、枚举都可以定义初始化器 2、类有2种初始化器:指定初始化器(deaignated...

  • Swift语法 -- [12 - 初始化器]

    Swift 初始化 1. 初始化器 类、结构体、枚举都可以定义初始化器 类有2种初始化器: 指定初始化器(desi...

网友评论

      本文标题:初始化器

      本文链接:https://www.haomeiwen.com/subject/imzwkttx.html