美文网首页小经验小TipiOS-swift
十六、Swift3.0之KVC函数调用的实现(构建模型)

十六、Swift3.0之KVC函数调用的实现(构建模型)

作者: ZhengYaWei | 来源:发表于2017-02-26 23:40 被阅读295次

总结:
1、一般定义模型属性的时候,如果是对象,通常都是可选的。原因如下两点:
- a、在需要的时候加载
- b、避免写构造函数,可以简化代码
2、如果是基本数据类型,不能设置为可选的,要设置初始值,否则KVC会崩溃。
3、如果需要使用KVC设置数值,属性不能是private

4、在使用KVC方法之前(如:setValuesForKeys方法),应该调用super.init(),保证对象初始化完成

class Person: NSObject {
    //name是可选的, 在OC中很多的属性都是在需要的时候创建的
    //例如: vc.view  tableViewCell.textLbale  因为在手机开发中,内存很宝贵,有些属性并不是一定需要分配空间的
    //延时加载,在需要的时候创建
    var name: String?
    
    
    //给基本数据类型初始化
    //使用KVC会提示无法找到age的KEY,因为Int是一个基本数据类型的结构体,OC中只有基本数据类型。因此对于基本数据类型要设置初始值。
    var age: Int = 0
//    var age: Int?
    
    //私有属性
    //如果是private属性,使用KVC设置值的时候,同样无法设置
    //如果设置为private属性是禁止外部访问的
//    private var title: String?
     var title: String?
    init(dict: [String: AnyObject]) {
        super.init()
        //setValuesForKeys是KVC方法
        //KVC的方法又是OC的方法,在运行时给对象发送消息,这点要求对象已经实例化完成。super.init()就是用来保证对象初始化完成。
        setValuesForKeys(dict)
        
    }
    //重写父类的方法
    override func setValue(_ value: Any?, forUndefinedKey key: String) {
        //没有调用super,将父类的代码完全覆盖,不会崩溃
    }
}

相关文章

  • 十六、Swift3.0之KVC函数调用的实现(构建模型)

    总结:1、一般定义模型属性的时候,如果是对象,通常都是可选的。原因如下两点:- a、在需要的时候加载- b、避...

  • 自动生成属性的模型

    利用 KVC 实现的自动生成属性的模型 调用下面的方法 在输出控制台输出属性模型, 利用kvc 属性名字与字典的 ...

  • swift kvc 构造函数

    kvc 是oc特有 ,KVC 本质上是在运行时,直接调用程序会崩溃 介绍 kvc 构造函数 kvc构造函数的作用是...

  • C++面向对象高级编程(下)-第二周-博览网

    对象模型 指针指向子类,通过指针调用虚函数,自动调用子类的虚函数实现, 指针调用虚函数时,不做静态绑定,做动态绑定...

  • Pytorch 任务四

    首先用numpy实现: PyTorch实现多层网络 引入模块,读取数据 构建计算图(构建网络模型) 损失函数与优化...

  • kvc kvo

    1.iOS底层-KVC使用实践以及实现原理赋值原理:(1)去模型中查找有没有setIcon方法,就直接调用这个se...

  • 迁移学习3-带回调函数

    导入所需的包 下载并调用预训练模型 处理预处理模型 定义回调函数 定义分类器 获取并处理数据集 构建batch数据...

  • 高性能IO模型与线程模型

    IO模型 linux系统实现IO通信,主要是依靠几个系统调用函数实现的: recvFrom实现非阻塞和阻塞IO,该...

  • Swift基础 - KVC/遍历构造方法

    五.KVC构造方法: KVC构造函数,利用运行时的机制,在运行的时候,给对象动态调用setValue forKey...

  • Swift 基础之KVC 字典转模型构造函数

    KVC 字典转模型构造函数 以上代码编译就会报错! 原因:KVC 是 OC 特有的,KVC 本质上是在运行时,动态...

网友评论

    本文标题:十六、Swift3.0之KVC函数调用的实现(构建模型)

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