iOS swift-deinit

作者: samtake | 来源:发表于2019-04-25 00:22 被阅读3次

    deinit

    deinit: 析构函数(destructor) 与构造函数相反,当对象结束其生命周期时(例如对象所在的函数已调用完毕),系统自动执行析构函数和OC中的dealloc 一样的,通常在deinit和dealloc中需要执行的操作有:

    • 对象销毁
    • KVO移除
    • 移除通知
    • NSTimer销毁
    deinit {
        NotificationCenter.default.removeObserver(self)
    }
    

    @objc func

    在 Swift 代码中,使用@objc修饰后的类型,可以直接供 Objective-C 调用。可以使用@objc修饰的类型包括:

    • 未嵌套的类
    • 协议
    • 非泛型枚举(仅限于原始值为整形的类型)
    • 类和协议中的属性和方法
    • 构造器和析构器
    • 下标
    @objc func backButtonClick(button:UIButton) -> Void {
        navigationController?.popViewController(animated: false)
    }
    

    _下划线 忽略作用

    extension 扩展

    convenience 便利

    使用convenience修饰的构造函数叫做便利构造函数
    便利构造函数通常用在对系统的类进行构造函数的扩充时使用。
    便利构造函数的特点:
    1、便利构造函数通常都是写在extension里面
    2、便利函数init前面需要加载convenience
    3、在便利构造函数中需要明确的调用self.init()

    as

    1、和 "as" 右边类型一致

    2、是右边类型的子类(这种情况在java里叫向上转型)

    as!

    如果 碰到as 左边类型是右边类型的父类则会报错!(as不可以用于父类转子类,用java话说,不支持向下转型),由此可用as!(强转)

    编译器也会提示你用as!, as!强转如果类型不符合会报错。

    as?

    as? 相当于optional类型,如果转换失败返回nil。

    相关文章

      网友评论

        本文标题:iOS swift-deinit

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