在闭包中要是调用某一个方法的时候要使用self,要不然直接报错
要是按住 option键 点击某个属性出不来的话 就把属性后面的值都注释掉 就可以出来了
extension 中只能写便利构造函数,不能写制定构造函数 不能定义存储型属性,因为会破坏这个类的结构 类似于oc中的分类 只是增加不能修改
归档和解档(这两个协议方法不能写在extesion的方法中,该方法只允许写便利构造函数,不能写指定构造函数,也就是不能定义存储型属性)
归档:把当前对象存储到磁盘前,将对象编码称二进制数据格式, 类似于网络的序列化概念
解档:从磁盘中加载二进制文件,转换成对象时使用,类似于网络的反序列化概念
required没有继承性,所有对象只能解档处当前类对象那 只是用在这里修饰这个方法 不做其他用处
required init?(coder aDecoder: NSCoder) { }
视图模型的好处就是 封装网络处理 封装业务逻辑 没有复杂的属性 命名格式 : 模型+ViewModel
视图模型和模型沟通,而控制器和视图模型沟通
计算型属性的引入
//计算性属性类似于有返回值的函数归档路径不使用函数的原因就是语音更清晰
private var accountPath : String { let path = NSSearchPathForDirectoriesInDomains(.DocumentDirectory,.UserDomainMask, true).last! return (path as NSString).stringByAppendingPathComponent("account.plist") } //MARK: - 与计算型属性做对比 private func accountP ()->String{ let path = NSSearchPathForDirectoriesInDomains(.DocumentDirectory,.UserDomainMask, true).last! return (path as NSString).stringByAppendingPathComponent("account.plist")
}