美文网首页
GeekBand OC 5. 初始化器与析构器

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

作者: robinn9810 | 来源:发表于2016-05-13 19:09 被阅读22次

初始化器(初始化)

对象初始化器:-(id)

类型初始化器:+(void)

析构器(释放)

对象析构器:-(void)dealloc

对象初始化器

1. init和alloc(类方法)搭配使用

alloc:分配内存-》将内存置零(0,NULL)

init可能返回与对象不同的指针,因此应该嵌套使用[[alloc]init]

-(id)init 默认初始化器

自定义:

1. 先调用父类初始化器self=[super init];

2. if(self){初始化实例变量 "_abc"(copy是为了创造一个新的对象)}

3. return self;

较为简单的初始化器(便捷)一般调用最复杂的初始化器(指定)

2. new = alloc+init

new不能传递参数

类型初始化器

+(void)initialize

自动调用父类初始化器

if(self == [Book class])判断是否为Book类

出现类之前会先调用类初始化器

析构器

-(void)dealloc

释放对象的动态资源

dealloc功能:

(自动)对对象属性引用计数减持(-1)

(手动)malloc的内存要在dealloc里手工释放free();

(手动)关闭非内存资源

(自动)调用父类dealloc

dealloc在释放内存前自动调用

相关文章

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

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

  • 【GeekBand】objective-c basic1

    类与对象 数据成员 函数成员 TODO: 初始化器和析构器继承多态 类与对象 Objective-C(以下简称OC...

  • 五、初始化器与析构器 @GeekBand

    对象初始化器:init 返回类型:id可以重载多个不用self.属性,用实例变量new 相当于调用缺省的无参初始化...

  • deinit(析构)

    //个人感觉析构和oc中控制器的dealloc相似 //析构// “析构器只适用于类类型,当一个类的实例被释放之前...

  • 析构过程

    实例再被释放前会调用 deinit方法,类似oc中的dealloc 子类析构器执行完后会向上执行父类析构器。

  • 《Swift从入门到精通》(十三):反初始化(析构过程)

    反初始化(析构过程)类实例销毁之前会立即调用析构器,用关键字 deinit 反初始化(析构过程)如何工作Swift...

  • swift3语法(十二)

    析构过程 析构器析构器只适用于类类型,当一个类的实例被释放之前,析构器会被立即调用。析构器用关键字deinit来标...

  • 初始化器与析构器

    初始化器用于初始化对象实例或者类型,是一个特殊的函数对象初始化器:-(id) init 可以重载多个 返回值是id...

  • swift之析构过程与自动引用计数

    1>析构器原理 析构器只适用于类类型,当一个类的实例被释放之前,析构器会被立即调用。析构器用关键字deinit来标...

  • Swift 4.2基础---析构器

    在释放类实例之前立即调用析构器。使用deinit关键字编写析构器,类似于使用init关键字编写构造器。析构器只在c...

网友评论

      本文标题:GeekBand OC 5. 初始化器与析构器

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