澳门至尊网站-首页

您的位置:澳门至尊网站 > 搜索引擎 > 析构方法

析构方法

2019-11-14 18:25

/*

 析构方法:

 对象的内部存款和储蓄器被回笼前被隐式调用的方法, 对应OC的dealloc方法

 首要实施一些额外操作, 比如自由部分怀有财富, 关闭文件, 断开互联网等

 */

class FileHandle {

    var fd:Int32? // 文件陈诉符

    //内定构造器

    init(path:String) {

        //须要开荒的文书路线, 展开药方式(只读)

        //open方法是UNIX的方法

        let ret = open(path, O_RDONLY)

        if ret == -1 {

            fd = nil

        }else{

            fd = ret

        }

        print("对象被创立")

    }

    //析构方法

    deinit {

        //关闭文件

        if let ofd = fd {

            close(ofd)

        }

        print("对象被销毁")

    }

}

var fh:FileHandle? = FileHandle(path: "/Users/hanjunqiang/Desktop/Study伊夫ryDay/H5/第意气风发阶段/散文.html") //测验地址, 换到你自个儿路线地址文件就可以

fh = nil

 

 

/*

 析构方法的机动延续

 父类的析构方法会被机关调用, 无需子类管理

 */

class Person {

    var name:String

    init(name:String) {

        self.name = name

        print("Person init")

    }

    deinit {

        print("Person deinit")

    }

}

 

class SuperMan: Person {

    var age:Int

    init(age:Int) {

        self.age = age

        super.init(name: "hjq")

    }

    deinit {

        //假诺父类的析构方法不会被电动调用, 那么大家还亟需关爱父类

        //不过若是这么做对子类是超苦逼的

        print("SuperMan deinit")

    }

}

var sm:SuperMan? = SuperMan(age: 25)

sm = nil

 

本文由澳门至尊网站发布于搜索引擎,转载请注明出处:析构方法

关键词: