28.swift高级

    1. 在本类的属性必须完成初始化之后, 再调用父类初始化的方法
    2. 在同一个文件夹下所有的东西是共享的 不用引入头文件
    3. 调用堆栈里边的小人一般为自己写的
    4. 所有的构造函数都是init
    5. 重载就是函数名相同, 参数个数/参数名/参数类型  override是重写

     

    1. 重写和重载的区别

    重写: 子类去重写父类的方法, 需要对子类进行一定的扩展

    重写需要用关键字 override

    重载方法名相同参数个数/参数名称/参数类型不同

     

    1. 如果重载狗在函数但是没有实现默认的狗在函数init()系统不再提供默认的构造函数
    2. kvc 运行时  系统动态的给属性赋值  属性有内存  给实例化对象发送
    3. 子类可以继承父类的kvc构造函数

     

    1. 便利构造函数返回的类可能为nil  

    便利构造函数,需要调用其他的构造函数,来完成初始化   要用self.init---

    便利构造函数的关键字  convenience

    子类的便利构造函数继承了父类的便利构造函数

    即便复制父类的 便利构造函数,到子类中也不会调用父类的遍历构造函数

     

    1. 定义一个_name   var _name:String?

    var name: String?{

    get{

    ret _name

    }

    set {

    _name = newValue

    }

    }

     

    1. private 定义成私有的  

    只读 只在方法中写get方法

     

    1. 懒加载

    lazy var person: Person = {return Person()}()

    lazy var demoPerson: Person = Person()

    let personFunc = {() -> Person in return Person()}

    lazy var demoPerson:Person = self.personFunc()

     

    1. extentsion 类似于category 来添加方法, 添加方法只能作为区分代码块使用, 不能像category那样调用方法   数据源方法    只能放至方法 不能放置属性

    extentsion ViewController{   }

     

    1. as(默认) 一般应用于String 转换成 NSString , array NSArray  系统的东西转

    as! (强转) 告诉就是后面的哪种类型   应用于我们自己定义的类

    as? (可选) 告诉不一定是后面的类型

     

    1. 可选项的针对方案  第一个让系统去提示我们,然后就分析

    第二个 多敲

     

    1. cell中用 didSet 就相当于 oc 重写set方法

    var person: Person?{didSet{ nameLabel.text = person?.name  ageLabel.text = "\(person?.age  ??  0)"}}

     

    1. textField.hashText()   有值的话
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值