14.1 Swift析构方法

        /**

         

         Swift 内存管理

         

         Objective-C 一样都是基于ARC的内存管理。

         

         1)析构方法

         对象的内存被回收前夕被隐式的调用的方法。主要执行一些额外的操作。

         比如:关闭文件、断开网络、释放对象持有的一些资源等。

         Objective-C中就是 dealloc方法

         

         Swift的析构方法中,不用去管理内存。

         */

        

        class FileHandler {

            var fd: Int32? // 文件描述符

            init(path: String) {

                

                // 打开文件,只读方式

                var ret = open(path, O_RDONLY)

                

                if ret == -1 {

                    fd = nil

                } else {

                    fd = ret

                }

            }

            

            deinit {

                

                // 如果没有关闭这个文件,那么资源被浪费了

                if let ofd = fd {

                    close(ofd)

                }

                

                print("对象被销毁,持有资源被释放。")

            }

        }

        

        

        print("----------->>>>")

        

        /**

         对象(引用类型)何时被销毁,对象没有任何引用的时候。

         */

        var ofh: FileHandler? = FileHandler.init(path: "etc/passwd")

        print("-----------da>>>>")


        // 目前没有被任何的引用指向刚刚构造的对象。

//        ofh = nil

        

        /**

         打印

         ----------->>>>

         -----------da>>>>

         对象被销毁,持有资源被释放。

         */

        


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值