美文网首页
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. 初始化器与析构器

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