美文网首页
第二十三章 Swift 析构过程

第二十三章 Swift 析构过程

作者: 我有小尾巴快看 | 来源:发表于2019-06-06 18:14 被阅读0次

    在一个类的实例被释放之前,析构函数被立即调用。用关键字deinit来标示析构函数,类似于初始化函数用init来标示。析构函数只适用于类类型。

    OC中的dealloc函数将无法使用。

    析构过程原理

    Swift 通过自动引用计数(ARC)处理实例的内存管理,会自动释放不再需要的实例以释放资源。

    通常当你的实例被释放时不需要手动地去清理。但是当使用自己的资源时,你可能需要进行一些额外的清理。

    // 在类的定义中,每个类最多只能有一个析构函数。析构函数不带任何参数,在写法上不带括号:
    
    deinit {
        // 执行析构过程
    }
    
    var counter = 0;  // 引用计数器
    class BaseClass {
        init() {
            counter += 1;
        }
    
        deinit {
            counter -= 1;
        }
    }
    
    var show: BaseClass? = BaseClass()
    print(counter)
    show = nil // 当 show = nil 语句执行后,计算器减去 1,show 占用的内存就会释放。
    print(counter)
    
    // 1
    // 0
    

    相关文章

      网友评论

          本文标题:第二十三章 Swift 析构过程

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